我使用帶有自定義標題欄和自定義縮放器的未裝飾JFrame。所有的工作正常,但是當我做一個JFrame undecorated時,我失去了Windows的左/右鍵綁定的支持(似乎它本地實現的Windows)。我想爲我的應用程序重新實現此功能。我的問題:我可以在關鍵偵聽器中檢測是否按下了Windows鍵,但我無法檢測到另一個鍵(在我的情況下爲左/右)是否與Windows鍵一起按下(InputEvent中沒有修飾符WINDOWS_MASK_DOWN)。可能有人知道一個解決方法?在未裝飾的JFrame中支持Windows-Left和Windows-Right
這裏是我的代碼:
import java.awt.BorderLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
public class HeadlessFrameTest {
public static void main(String[] args) {
final JFrame frm = new JFrame("Test");
final JTextField field = new JTextField();
frm.add(field, BorderLayout.NORTH);
field.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
System.out.println(e);
}
});
frm.setUndecorated(true);
frm.setSize(500, 550);
frm.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frm.setVisible(true);
}
}
+1'(InputEvent中沒有修飾符WINDOWS_MASK_DOWN).'按下右/左鍵(在JDK7中)時,即使爲keyReleased事件生成事件,也不會生成事件。這告訴我Windows正在攔截事件。奇怪的是,右鍵/左鍵功能不起作用,因爲Windows +向上鍵最大化窗口,儘管Windows +向下不會恢復窗口。所以肯定存在不一致。我不知道解決方案。 – camickr 2014-10-06 18:49:05
這有什麼更新?我有同樣的問題,我正在尋找解決方案。 – Sebastian 2016-09-12 13:48:17