我的应用程序中有多个JButton。用鼠标单击按钮时,将显示正确的消息。但是,当我尝试在按键时选择一个按钮时,它会显示第一个值,即按钮的值不变。我希望能够在按下键盘上的“ C”键时选择多个按钮。下面是代码:

ActionListener listener = new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    if (e.getSource() instanceof JButton) {

                        String text = ((JButton) e.getSource()).getText();
                        JOptionPane.showMessageDialog(null, text);
                    }
                }
            };

             for (int i = 1; i < button.length; i++) {

                 button[i] = new JButton(String.valueOf(i));
                 button[i].addActionListener(listener);

                 panel11.add(button[i]);
                 _targetItems.addFirst(button[i]); // target items is a linked list

                }

最佳答案

您可以创建一个键侦听器对象。然后将其附加到所有按钮。

KeyListener keyListener = new KeyListner {
     //Override the specific action you want here
     ...
}

button[0].addKeyListener(keyListener); //reuse the same listener for your buttons
...


https://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html

关于java - Java JButton ActionListener,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39835125/

10-12 00:30