gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 05:04:11 25 4
gpt4 key购买 nike

我现在正在创建一个 java Sudoku GUI 应用程序。

用于显示数独谜题的网格只是 myJButtons(实现 JButton)的二维数组 - 对于此问题,它们可以被视为常规 JButtons。

程序将允许单击网格中的按钮,调用 Action 监听器。

有没有办法允许在单击按钮时创建 KeyAdapter 按键以允许按数字 - 物理键 1,2,3,4,5,6,7,8,9,0

我希望 Action 监听器仅在单击按钮时起作用。

一个更简单的例子是带有单个按钮的框架。当按下按钮时,用户可以按下键盘上的物理键,将 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

}
}

提前感谢任何能回答这个问题的人!

最佳答案

我会使用另一种解决方案。您可以在应用程序启动期间注册按键监听器,而不是每次单击按钮时都创建按键事件监听器。然后您可以使用标志来检查按钮是否首先被单击。仅当此标志为 true 时,您才能在 KeyEvent 监听器中执行操作。否则,您将跳过 KeyEvent Listener 中的所有语句。

这里是一个例子:

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;
}
}
});

}

}

关于JAVA - 在按钮操作监听器单击事件期间创建 KeyPress 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5682804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com