ActionListener от JButton - PullRequest
       35

ActionListener от JButton

0 голосов
/ 27 марта 2012

В приведенном ниже коде, когда и _uiChkTestAction, и _uiChkTestItem JCheckBox не выбраны, нажатие кнопки bu1 делает их обоих выбранными, но нажатие кнопки bu2 не меняет _uiChkTestItem JCheckBox с того, что оно не выбрано для выбора.

Итак, естьчто-то не так с моим кодом?

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

public class TestActionItemListener
{
public static void main(String[] _args)
{
    EventQueue.invokeLater(new Runnable(){

    public void run(){

    JFrame _fra = new JFrame("Testing");
    _fra.setSize(500, 500);
    _fra.setLayout(new FlowLayout());
    final JCheckBox _uiChkTestAction = new JCheckBox("ActionListener");
    _uiChkTestAction.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent _ev)
        {
            System.out.println("State by ActionListener: " + _uiChkTestAction.isSelected());
        }
    });

    final JCheckBox _uiChkTestItem = new JCheckBox("ItemListener");
    _uiChkTestItem.addItemListener(new ItemListener()
    {
        public void itemStateChanged(ItemEvent e)
        {
            System.out.println("State by ItemListener: " + _uiChkTestAction.isSelected());
        }
    });
    JButton bu1 = new JButton("actionlistener bu");
    bu1.addActionListener(new ActionListener(){

        @Override
        public void actionPerformed(ActionEvent e) {
          _uiChkTestAction.setSelected(true);
        }
     });
    JButton bu2 = new JButton("itemlistener bu");
    bu1.addActionListener(new ActionListener(){

        @Override
        public void actionPerformed(ActionEvent e) {
        _uiChkTestItem.setSelected(true);
        }
     });
    _fra.add(_uiChkTestAction);
    _fra.add(_uiChkTestItem);
    _fra.add(bu1);
    _fra.add(bu2);
    _uiChkTestAction.setSelected(true);
    _uiChkTestItem.setSelected(true);

    _fra.setVisible(true);
}}
);
}
};

Ответы [ 2 ]

3 голосов
/ 27 марта 2012

Вы добавляете обоих слушателей к одной и той же кнопке bu1 iso, добавляя один к bu1 и один к bu2

1 голос
/ 27 марта 2012

Вы добавляете слушателя к bu1 дважды. Добавьте второй к bu2.

...