JAVA-在按钮动作侦听器单击事件期间创建KeyPress事件

|| 我现在正在创建Java Sudoku GUI应用程序。 用于显示Sudoku难题的网格只是myJButtons(实现JButton)的二维数组-对于此问题,可以将它们视为常规JButton。 该程序将允许单击网格中的按钮,从而调用动作侦听器。 当单击按钮以允许数字键时,是否有办法允许创建KeyAdapter Keypress-物理键1,2,3,4,5,6,7,8,9,0 我希望动作监听器仅在单击按钮时起作用。 一个简单的例子是带有单个按钮的框架。当按下按钮时,用户可以按下键盘上的物理键,将jbutton文本设置为键值。除非先单击该按钮,否则其他按键操作不会更改按钮文本。
class ClickAction implements ActionListener { // Action Listener called when button is Pressed

    public void actionPerformed(ActionEvent ae) {

        //need a way to create a keyevent listener here

    }
}
预先感谢任何可以回答这个问题的人!     
已邀请:
我会使用另一种解决方案。您不必在每次单击按钮时都创建KeyEvent侦听器,而可以在应用程序启动期间注册键侦听器。然后,您可以使用标志来检查是否首先单击了按钮。仅当此标志为true时,才在KeyEvent侦听器中执行操作。否则,您将跳过KeyEvent侦听器中的所有语句。 这里有个例子:
public class TestClass {

    private boolean isButtonClicked = false;

    public void testYourButtons() {

        JButton myButton = new JButton();
        myButton.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                isButtonClicked = !isButtonClicked;
            }
        });

        myButton.addKeyListener(new KeyListener() {

            @Override
            public void keyTyped(KeyEvent arg0) {
                // TODO Auto-generated method stub  
            }

            @Override
            public void keyReleased(KeyEvent arg0) {
                // TODO Auto-generated method stub
            }

            @Override
            public void keyPressed(KeyEvent arg0) {
                if (isButtonClicked) {
                    // TODO Do here your event handling
                    isButtonClicked = false;
                }
            }
        });

    }

}
    
如我所见,您可以构造任何新事件,然后通过
Component.processXxxEvent()
发送     

要回复问题请先登录注册