Слушатель действий не работает

Я пытаюсь реализовать ActionListener для JComboBoxe, чтобы при выборе элемента в списке и нажатии кнопки «ОК» я хотел, чтобы он отображался в новом графическом интерфейсе, который я определил с текстовым полем в нем, поэтому, когда элемент выбран из выпадающего списка он появится в текстовом поле графического интерфейса и детали того, какой элемент выбран.

В этом примере показано одно поле со списком, но всего у меня их 6.

jComboBox4.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
jComboBox4.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseClicked(java.awt.event.MouseEvent evt) {
        jComboBox4MouseClicked(evt);
    }
});

person user1571125    schedule 02.08.2012    source источник
comment
Если вы хотите, чтобы что-то происходило при нажатии JButton, прикрепите свой ActionListener к JButton, а не к JComboBox.   -  person Ernest Friedman-Hill    schedule 02.08.2012
comment
Внутри метода actionPerformed(...) для JButton(OK Button) просто используйте jComboBox4.getSelectedItem() and so on for others и просто передайте его, чтобы он отображался в других компонентах, если это необходимо :-)   -  person nIcE cOw    schedule 02.08.2012
comment
Большое спасибо за помощь, но это, похоже, не сработало, я попробовал их, как указано, в обоих местах Jbutton 1 - главная кнопка или, другими словами, (кнопка Ok   -  person user1571125    schedule 03.08.2012
comment
private void jComboBox4ActionPerformed(java.awt.event.ActionEvent evt) { jComboBox4.getSelectedItem() тогда здесь   -  person user1571125    schedule 03.08.2012
comment
private void jComboBox4MouseClicked(java.awt.event.MouseEvent evt) { jComboBox4.getSelectedItem()   -  person user1571125    schedule 03.08.2012
comment
rivate void jButton1ActionPerformed (java.awt.event.ActionEvent evt) { private void jComboBox4MouseClicked (java.awt.event.MouseEvent evt) { jComboBox4.getSelectedItem()   -  person user1571125    schedule 03.08.2012
comment
пожалуйста, отредактируйте свой вопрос с дополнительной информацией вместо того, чтобы пытаться сделать это в комментарии - в последнем это едва читается :-)   -  person kleopatra    schedule 03.08.2012
comment
Вы написали код в своем фрагменте или он был сгенерирован конструктором графического интерфейса? Причина, по которой я спрашиваю, заключается в том, что если вы сможете отредактировать его напрямую, ответить на ваш вопрос будет немного проще. Однако, если он генерируется графическим интерфейсом, вам придется пройти через несколько обручей. В любом случае вам нужно будет добавить ActionListener, а не MouseListener, чтобы делать то, что вы хотите.   -  person Code-Apprentice    schedule 03.08.2012


Ответы (1)


Сначала добавьте ActionListener к нужной кнопке

// When the button is clicked this is called...
public class ButtonActionListener extends ActionListener {
    public void actionPerformed(ActionEvent evt) {
        Object value = comboBox.getSelectedItem();
        // check for null value
        // do what ever it is you want to do after that...            
    }
}

Если вы хотите отслеживать изменения в ComboBox, у вас есть несколько вариантов, самым простым из которых является ActionListener.

// When the button is clicked this is called...
public class ComboBixActionListener extends ActionListener {
    public void actionPerformed(ActionEvent evt) {
        Object value = comboBox.getSelectedItem();
        // The combo box value has changed, maybe update the text field???
    }
}
person MadProgrammer    schedule 02.08.2012
comment
еще раз большое спасибо, но все еще не могу получить его, независимо от того, где я его поставил, он не изменится, когда элемент нажмет на поле со списком в текстовое поле в деталях. - person user1571125; 03.08.2012