Java Programlama HATA NEREDE ?

KhL
06-01-2012, 11:06   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
1 mesaj
Kayıt Tarihi:Kayıt: Oca 2012


 import java.util.Scanner;
 
import javax.swing.JOptionPane;
class Personel  {
public static void main(String args[]) {
String A[] = { "", 
"\n1.Kişinin Bilgilileri",
"\n2.Kişinin Bilgilileri", 
"\n3.Kişinin Bilgilileri", 
};
JOptionPane.showInputDialog("Personel Bilgileri#\n\n\n" +
  "1.Personel :1.Kişi\n" +
  "2.Personel :2.Kişi\n" +
  "3.Personel :3.Kişi\n" +
  "Personel Bilgileri İçin Numarasını Giriniz.");
 
Scanner tara = new Scanner(System.in);
int y = tara.nextInt();
if (y > 0 && y <= 16){
 JOptionPane.showInputDialog(y + ".Personel:" + A[y]);
}
 
else {
 JOptionPane.showInputDialog("1 ile 16 Arasında Bir Rakam Giriniz.\n");
 JOptionPane.showInputDialog(
   "1.Personel :1.Kişi\n" +
   "2.Personel :2.Kişi\n" +
   "3.Personel :3.Kişi\n" +
   "\nProgramı Tekrar Çalıştırınız.");
}
 
}
}
 
 
 
 
arkadaşlar bu programda karşınıza ilk penceredeki personel listesi çıktıktan sonra  sonra personel numarasını girince pencere kayboluyor personel bilgilerinin yer aldığı ikinci pencere ekranda niye gelmiyor. JOptionPane.showInputDialog  ile ekrana yazdırdığımızda bu sorun oluyor ama diğer türlü system.out.println ile yazdırdığımızda editörün konsol bölümüde çalışıtrıdığımızda sıkıntı olmuyor bu konuda yardımlarınızı bekliyorum teşekkürler . 


Irrlandia
10-02-2012, 22:39   |  #2  
Taze Üye
Teşekkür Sayısı: 0
5 mesaj
Kayıt Tarihi:Kayıt: Şub 2012

Arkadaşım Merhaba , 
Hatayı şurada yapıyorsun ; Kullanıcıdan bilgi almak için Kullandığın bileşen JOptionPane sınfından inputdialog kutusu. inputdialogtan girilen her bilgi String tipindedir. Senin int y demiş oldugun şey ise adı üzerinde Integer tipindedir. Yani sen burada kullanıcıdan aldıgın String bir ifadeyi ( örnek olarak 2 girsin) Integer olarak tanımladığın için problem çıkıyor. Demişsin  ki konsoldan yapınca program çalışıyor bir sıkıntı yok. Evet o zaman çalışır çünkü konsol ile inputdialog kutusu arasında fark var. Konsoldan " 2"  sayısını girersen bunun tipini programın kendisi integer olarak algılar ve y değişkenine atamada bir sıkıntı çıkmaz. Fakar dediğim gibi inputdialog kutusundan alırsan bilgiyi o zaman iş değişir. Inputdialogtan alınan her girdi String ' tir unutma. Senin o girilen sayıyı kullanman için önce integer tipine çevirmen gerekecek . Onun da nası yapıldığını aşağıdaki kod bloğunan anlarsın . Biraz uzun bir yazı oldu ama kafanın karışmasını istemediğim için açıkladım . İyi çalışmalar.

String bilgi = JOptionPane.showInputDialog("Personel Bilgileri#\n\n\n" + // dediğim gibi gelen her girdi stringtir. Onu da bilgi simli dtring bir değişkene atadık.
  "1.Personel :1.Kişi\n" +
  "2.Personel :2.Kişi\n" +
  "3.Personel :3.Kişi\n" +
  "Personel Bilgileri İçin Numarasını Giriniz.");
 

int y = Integer.parseInt(bilgi); // Burada da string tipindeki bilgiyi parseint metoduna parametre olarak gönderdik ve integer tipine çevrilmesine sağlayarak y değişkenine atadık .