仅在 Windows 10 中,Java Keyevent 不起作用..在 Windows 7 和 8 中它运行良好..我不知道为啥
Posted
技术标签:
【中文标题】仅在 Windows 10 中,Java Keyevent 不起作用..在 Windows 7 和 8 中它运行良好..我不知道为啥【英文标题】:only in windows10, Java Keyevent doesn't work.. in Windows7 and 8 it works well.. I don't know why仅在 Windows 10 中,Java Keyevent 不起作用..在 Windows 7 和 8 中它运行良好..我不知道为什么 【发布时间】:2017-06-16 13:53:34 【问题描述】:-
我正在制作 KeyEvent 测试程序,但它在 Windows10 中不起作用。
这个程序在Windows7和8版本下运行良好..我不知道为什么..
键盘问题..?还是其他人..?
class KeyFrame extends JFrame
public KeyFrame()
KeyTest t = new KeyTest();
setContentPane(t);
this.setSize(700, 700);
setSize(300,300);
setVisible(true);
t.requestFocus();
public class KeyTest extends JPanel
JLabel la = new JLabel("Input");
public KeyTest()
add(la);
this.addKeyListener(new KeyAdapter()
public void keyPressed(KeyEvent e)
String data = e.getKeyText(e.getKeyCode());
la.setText(data + "Pressed");
if(e.getKeyCode() == KeyEvent.VK_F1)
setBackground(Color.GREEN);
else if(e.getKeyChar() == '%')
setBackground(Color.YELLOW);
);
public static void main(String[] ar)
new KeyFrame();
【问题讨论】:
啊,KeyListener
,永远摧毁开发者的生命。 KeyListener
在最好的时候是善变的,我认为你很幸运它在其他平台上(始终如一地)工作。我建议您尝试使用Key Bindings API instead
【参考方案1】:
如果您要为 JLabel 添加 KeyListener。
注意:有些组件不像 JLabel 那样可聚焦。
你可以试试那个。
确保组件的 isFocusable 方法返回 true。此状态允许组件接收焦点。例如,您可以通过在标签上调用 setFocusable(true) 方法为 JLabel 组件启用键盘焦点。
【讨论】:
以上是关于仅在 Windows 10 中,Java Keyevent 不起作用..在 Windows 7 和 8 中它运行良好..我不知道为啥的主要内容,如果未能解决你的问题,请参考以下文章
为啥 gRPC 仅在 Windows 上每秒抛出“已建立的连接被主机中的软件中止”?
为啥 LWJGL 仅在 Windows 上在以前和当前的游戏状态之间闪烁?
Java Selenium 3.3.1 和 geckodriver 0.15.0 不在 Windows 10 上等待