Arkadaşlar merhaba, java'da yeniyim ve Gui kısmına henüz geçiş yaptım. Eclipse ile Swing bileşenlerini sisteme ekledikten sonra görsel tasarım yaparken; bir buton ekledikten sonra eklenen diğer herhangi bir bileşen, butonun metot kısmında algılanmıyor. Örneğin bir Jtext kutusu. Kod bölümüne geçerek Jtext ile ilgili kodları butonun üzerine çıkardığımda ise metot hata vermeden çalışıyor. Kısacası ben mi bi yerlerde hata yapıyorum? yoksa bir sıralama mı var? Teşekkürler

soruldu: 19 Oca, 04:36

altuntas_erhan's gravatar image

altuntas_erhan
01
cevap kabul oranı: 0%

@altuntas_erhan Kod paylasirsaniz daha hizli cevaplar alirsiniz!

(19 Oca, 08:41) CemIkta ♦ CemIkta's gravatar image

Eklenen denetçiler şu şekilde eklenir:

public class MainWin extends JFrame {

private JPanel contentPane;
private JButton btnOne;
private JTextArea txtArea;

Bu nesnelere herhangi bir implementation atılmamış. Class constructor'ında bu değişkenlere değer atanır. Örneğin:

public MainWin() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 450, 300);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(new MigLayout("", "[]", "[]"));

    btnOne = new JButton();
    btnOne.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseClicked(MouseEvent e) {
            txtArea.setText(new Date().toString());
        }
    });
}

Butona tıklandığı zaman hata verir çünkü henüz txtArea propertisi initialize edilmemiş. Null properti üzerinde birşeyler yapmaya çalışıyorsun. Bu yüzden hata verir. Bu problemi nasıl ortadan kaldırırsın? Bunun için en iyi yöntem şu. Önce GUI'yi hazır hale getir. Hiçbir elemana hiçbir event belirlemeden sadece tasarlattır. Örneğin bunu buildGui() diye bir metod içerisinde yaptırabilirsin. Bu metodun işi bittikten sonra addEvents() diye bir metod oluşturup her denetçinin eventlarını tanımlattır. Böylece hiçbir event metodu belirsiz bir eleman üzerinde işlem yapmamış olur. Zaten elemanlar en tepede property olarak tanımlanacağı için her metod içerisinden erişebilirsin. Sıkıntı şu ki bu dediğim işlemi el ile yapman gerekiyor. Eclipse designer üzerinden elemana sağ tıklayıp "Add mouse click listener" dersen bu iş olmaz. Umarım anlatabilmişimdir.

permanent link

cevaplandı: 20 Oca, 05:27

kodmanyagha's gravatar image

kodmanyagha
3.1k132852
cevap kabul oranı: 15%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,079

Soruldu: 19 Oca, 04:36

Görüntüleme: 199 kez

Son güncelleme: 20 Oca, 05:27

powered by BitNami OSQA