gpt4 book ai didi

KeyPad 组件的 Java KeyEvents

转载 作者:行者123 更新时间:2023-12-01 16:02:35 25 4
gpt4 key购买 nike

我正在编写一个 Java 应用程序,该应用程序将有一个可用于触摸输入的屏幕数字键盘。普通的按键输入也将可用,但我想要平板电脑等的键盘。我创建了一个扩展 JPanel 的类。它有 10 个按正常键盘配置排列的按钮。现在我正在尝试弄清楚如何让它像普通键盘一样工作。

我只是不知道如何发出KeyEvents。这是我到目前为止所尝试过的:

我尝试添加一个新的 KeyListener。在 JPanel 中,当按下按钮时,操作监听器会调用一个方法,该方法创建一个新的 KeyEvent 并将其发送到添加到 JPanel 的所有 KeyListener。然而,无论我添加多少次KeyListeners,似乎都与面板没有任何关联。

我尝试的另一件事是将目标 JTextField 传递到 JPanel 并为 JTextField 设置一个成员对象。但每次我尝试向其附加文本时,成员对象都是空的。这实在是让我很困惑。

我希望有人能为我指出正确的方向,告诉我如何实现这个键盘,使其成为可能的模块化,以便它可以在多个不同的屏幕中使用。

提前致谢!

布伦特原油

最佳答案

您不需要KeyListener,您可以将自己与按下 JTextField 上的按钮(不是按键)的结果效果关联起来。

也许是这样的:

New JButton button = new JButton(new KeyPressedAction(mTextField,"0"));

哪里

public class KeyPressedAction extends Action{
JTextField tf;
String num;
public KeyPressedAction(JTextField textField,String num){
this.tf = textField;
this.num = num;
}

public void actionPerformed(ActionEvent e){
textField.setText(textField.getText+num);
}
}

关于KeyPad 组件的 Java KeyEvents,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3437190/

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