2010-10-26 63 views
1

我有点卡住了。我无法弄清楚比这个更大的问题,所以我要根深蒂固,最终建立我的路!组合框 - 打印出所选项目

我不能打印在组合框中选择的项目,目前我有一个ActionListener它:

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()); 
} 

我希望这我每次更改所选项目时打印到控制台,但事实并非如此。这应该是如此简单!

谢谢

+0

你在哪儿叫'myBox'? – 2010-10-26 14:06:27

+0

box.addActionListener(新的ActionListener(){ \t \t \t \t公共无效的actionPerformed(ActionEvent的EVT){ \t \t \t \t \t myBox上(EVT); \t \t \t \t} \t \t \t}); – tom 2010-10-26 14:09:46

+0

我的变量不是真的叫这个,但它的工作数据,我不想冒任何机会 – tom 2010-10-26 14:10:16

回答

4

我只是试过你的代码,它工作正常。每当我改变选择,所选文本被写入System.out

我唯一改变的是检查myBoxName.getSelectedItem().toString() != null,我检查了myBoxName.getSelectedItem() != null。但这不应该与你的问题有关。

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()); 
     } 
    } 
}