我在Eclise neon和Java 1.8中使用WindowsBuilder编写了一个基本的计算器类型程序。这几乎是完整的,一切都按我希望的方式进行。除了键盘输入。
作为最后一步,我想检测keyType事件并将它们映射到按钮按下,以便用户可以使用键盘进行输入,而不是用鼠标单击按钮。
我在程序类中添加了“实现KeyListener”...
public class CashRegister implements KeyListener {
private JTextField keyb;
我尝试将侦听器设置为一个名为keyb的不可见JTextField。。。。
private void initialize() {
keyb = new JTextField(20);
keyb.addKeyListener(this);
keyb.setFocusable(true);
keyb.requestFocusInWindow();
我添加了处理捕获的按键的方法...
public void keyTyped (KeyEvent e) {
String out = "";
out = out + e.getKeyChar();
pence1text.setText(out);
}
public void keyPressed (KeyEvent e) {
}
public void keyReleased (KeyEvent e) {
}
因此,在这个阶段,我所期望的,证明它有效的,是我按下的键字符出现在名为“pence1text”的文本字段中。但是,它不起作用,当我按a键时,什么也不显示。
我认为这可能是一个焦点问题。在谷歌上搜索并检查stackoverlow,我添加了以下几行。。。
keyb.setFocusable(true);
keyb.requestFocusInWindow();
如上,但仍然没有运气。
有人知道我做错了什么,或者我下一步可以尝试什么吗?
谢谢
作为最后一步,我想检测keyType事件并将它们映射到按钮按下,以便用户可以使用键盘进行输入,而不是用鼠标单击按钮。
不要使用KeyListener。
相反,您应该使用密钥绑定
。阅读Swing教程中关于如何使用密钥绑定的部分以获取基本信息。
另请参阅:如何将actionlistenerand actioncommand放置到多个JButton,这是一个工作示例,展示了如何将键绑定应用到计算器。
感谢用户Andrew Thompson将我带回文档并重新阅读。
问题是JTextField是不可见的,因此无法获得焦点。如果我将侦听器添加到可见的文本字段中,那么程序可以正常工作。但是,如果用户使用鼠标单击按钮,它会失去焦点并破坏实现...所以我需要重新考虑代码并继续查看焦点设置。
问题内容: 我正在尝试用C语言编写一个程序(在Linux上),该程序将循环直到用户按下某个键为止,但不要求按下键盘来继续每个循环。 有没有简单的方法可以做到这一点?我认为我可以做到这一点,但这似乎需要大量工作。 或者,有没有办法在程序关闭之前捕获- 按键进行清理,而不是非阻塞io? 问题答案: 如前所述,您可以使用ctrl-c 陷阱或任何标准输入。 但是请注意,使用后一种方法时,您还需要设置TTY
null 任何帮助都将不胜感激。
本文向大家介绍Android 设置Edittext获取焦点并弹出软键盘,包括了Android 设置Edittext获取焦点并弹出软键盘的使用技巧和注意事项,需要的朋友参考一下 Android 设置Edittext获取焦点并弹出软键盘 ps:android页面进入edittext自动获取焦点,弹出软键盘解决方法 在edittext的父布局中加入上面2个属性 以上就是本文的全部内容,希望本文的内容对大
是否隐藏聊窗键盘区域预览图片长图、GIF标识 /** 是否隐藏聊窗键盘区域预览图片长图、GIF标识 @param isHidden 是否隐藏(默认显示) */ [Ntalker ntalker_isHiddenLongImageOrGifLogo:NO];
问题内容: 我正在尝试在Java控制台应用程序中输入信息,但似乎无法运行它。 这是我的Java文件的样子: 但是我得到了错误: 我的源文件夹中有一个keyboard.class文件。我将Eclipse与Ubuntu结合使用。 问题答案: 表示无法编译代码。 您必须导入Keyboard,类似 当您使用不同包中的类(不是当前类的同一包)时,必须导入该类。如果该类也位于同一包中,则无需导入。 通常将类分