我正在构建这个弹出式学习新语言应用程序,如果用户发现一个未知单词,他只需按任意键盘键(例如alt + p),以便弹出应用程序并允许他插入新单词
并且为了使密钥从我编码以下的任何地方收听
public class IsKeyPressed extends JFrame implements KeyListener {
public IsKeyPressed() {
this.setExtendedState(MAXIMIZED_BOTH);
this.setUndecorated(true);
this.setBackground(new Color(0, 0, 0, 0));
this.addKeyListener(this);
this.setAlwaysOnTop(true);
this.setVisible(true);
while (true) {
this.toFront();
this.requestFocus();
this.repaint();
}
}
public static void main(String[] args) {
new IsKeyPressed();
}
@Override
public void keyPressed(KeyEvent ke) {
//open the pop up application
}
但是如果框架从任务栏聚焦,它只能正常工作 所以基本上它不起作用
任何想法如何解决?谢谢!
答案 0 :(得分:4)
但是如果框架从任务栏聚焦,它只能正常工作,所以基本上它不起作用
任何想法如何解决?
不是核心Java,这是肯定的。你问的是如何创建一个通用的密钥监听器,即使应用程序没有焦点也可以工作,这是核心Java GUI库不能自己做的事情,因为这个功能需要这个功能。编程人员接近操作系统以进行特定于操作系统的调用,并且Java被构建为尽可能与操作系统无关。
所以可能的解决方案包括