2010-10-26 26 views
1

Je suis un peu coincé. Je n'arrive pas à comprendre un problème beaucoup plus important que celui-ci, alors je vais à la racine pour finalement me construire!ComboBox - impression de l'élément sélectionné

Je ne peux pas imprimer l'élément sélectionné dans la zone de liste déroulante, actuellement j'ai un ActionListener pour elle:

box.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent evt) { 
     myBox(evt); 
    } 
}); 

... 

protected void myBox(ActionEvent evt) 
{ 
    if(myBoxName.getSelectedItem().toString() != null) 
    System.out.println(myBoxName.getSelectedItem().toString()); 
} 

je me attends à ce pour imprimer tous les temps à la console que je change l'élément sélectionné, mais ce n'est pas le cas. Cela devrait être si facile si!

Merci

+0

Où appelez-vous 'myBox'? –

+0

box.addActionListener (new ActionListener() { \t \t \t \t public void actionPerformed (ActionEvent evt) { \t \t \t \t \t myBOX (EVT); \t \t \t \t} \t \t \t}); – tom

+0

mes variables ne sont pas vraiment appelées cela, mais ses données de travail et je ne veux pas prendre de risques – tom

Répondre

4

J'ai juste essayé votre code et cela fonctionne très bien. Chaque fois que je change de sélection, le texte sélectionné est écrit System.out.

La seule chose que j'ai changé était la vérification pour myBoxName.getSelectedItem().toString() != null, je vérifie myBoxName.getSelectedItem() != null à la place. Cela ne devrait pas être lié à vos problèmes cependant.

public class ComboBoxTest { 
    private JComboBox comboBox = new JComboBox(
      new DefaultComboBoxModel(new String[] { "Test1", "Test2", "Test3" })); 

    public ComboBoxTest() { 
     JFrame frame = new JFrame(); 
     frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
     frame.setSize(200, 100); 

     comboBox.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
       myBox(evt); 
      } 
     }); 

     frame.getContentPane().add(comboBox); 
     frame.setVisible(true); 
    } 

    protected void myBox(ActionEvent evt) { 
     if (comboBox.getSelectedItem() != null) { 
      System.out.println(comboBox.getSelectedItem().toString()); 
     } 
    } 
}