【发布时间】:2014-08-09 05:05:42
【问题描述】:
我正在制作一个没有框架的应用程序。就像 Windows 中的小工具一样。
但我无法从此窗口获取关键事件。
这是我的代码:
JWindow win = new JWindow("gadget");
win.setFocusable(true);
win.setFocusableWindowState(true);
win.add(mypanel); // mypanel is a JPanel that I have created.
win.setSize(300, 100);
win.setLocation(400, 200);
win.addMouseListener(mymouselistener) // mymouselistener is a MouseAdapter
win.addKeyListener(mykeylistener) // mykeylistener is a KeyAdapter
win.setVisible(true);
我正在通过 mymouselistener 获取鼠标事件,它工作正常。 但是 mykeylistener 不起作用。
这里是监听器的简单代码:
MouseAdapter mymouselistener = new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
win.setFocusableWindowState(true);
System.out.println(e);
}
}
KeyAdapter mykeylistener = {
@Override
public void mouseClicked(MouseEvent e) {
win.setFocusableWindowState(true);
System.out.println(e);
}
}
【问题讨论】:
-
对于 Swing,我们通常在较低级别上使用 key bindings,基于 AWT,
KeyListener。 -
我们能看到监听代码吗?
-
我已经添加了监听代码。 @BitNinja
-
setWindowFocusableState 做你认为它做的事
-
myPanel包含什么?
标签: java swing keylistener