2016-04-03 8 views
-1

Dizeleri bir arraylist ile dolu bir JComboBox oluşturdum. Benim comboBox, istediğim gibi doğru şekilde doldurulur. Seçili öğeyi alırken benim sorunum geliyor: Bir btnGo.addActionListener içinde yazdırdığımda, seçimi değiştirdiğimde ve tekrar Git düğmesini tıklattığımda her zaman aynı olanın seçildiğinin farkına varıyorum. Seçimin gerçekte değişmesi için bir yol var mı? Go’yu tıklamadan aynı şeyi yapabilir miyim? Sadece comboBox'tan öğeyi seçip eylemi anında yapın.ComboBox'tan seçilen öğe her zaman aynıdır.

Bu benim seçilmiş oluyor hangi öğeyi nasıl olacağı:

String selected = comboBox.getSelectedItem().toString(); 

Sonra btnGo.addActionListener

+2

Tatminkar bir cevap almak için, muhtemelen iyi bir [mcve] oluşturmak ve göndermek isteyeceksiniz. Bunun ne olduğunu görmek için lütfen bağlantıyı okuyun. –

+2

Örneğin, bildiğimiz her şey için, seçilen öğeyi dinleyicinizle almıyor olabilirsiniz, ancak sadece orada yazdırabilirsiniz. Bizi tahmin etmeyin - bize göster. –

+3

[Bir combobox nasıl kullanılır] (https://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html) ve [ActionListener nasıl yazılır] (https://docs.oracle.com/ javase/tutorial/uiswing/events/actionlistener.html) iyi bir başlangıç ​​olabilir – MadProgrammer

cevap

2

yılında selected yazdırmak Evet bu bir combobox elemanı seçildiğinde bir eylemi yürütmek mümkündür. ComboBox'ınıza bir ActionListener eklemeniz yeterlidir; Burada örnek kod:

comboBox.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent event) { 
      JComboBox comboBox = (JComboBox) event.getSource(); 

      Object selected = comboBox.getSelectedItem(); 
      if(selected.toString().equals("item1")) 
      field.setText("AA"); 
      else if(selected.toString().equals("item2")) 
       field.setText("BB"); 

     } 
    }); 
    getContentPane().add(comboBox); 
    getContentPane().add(field); 
} 

Lütfen seçim konusunda size yardımcı olması için kaynak kodunu paylaşın.