ComboBox - распечатка выбранного элемента - PullRequest
1 голос
/ 26 октября 2010

Я немного застрял.Я не могу понять гораздо более серьезную проблему, чем эта, поэтому я иду к корням, чтобы в конечном итоге построить свой путь!

Я не могу напечатать выбранный элемент в поле со списком, в настоящее время у меня есть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());
}

Я ожидаю, что это будет выводиться на консоль каждый раз, когда я изменяю выбранный элемент, но это не так.Это должно быть так просто, хотя!

Спасибо

1 Ответ

4 голосов
/ 26 октября 2010

Я только что попробовал ваш код, и он отлично работает. Всякий раз, когда я изменяю выделение, выделенный текст записывается в 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());
        }
    }
}
...