Tôi sử dụng một JFrame chưa được trang bị với thanh tiêu đề tùy chỉnh và trình chỉnh sửa tùy chỉnh. Tất cả các công trình tốt nhưng khi tôi thực hiện một JFrame undecorated tôi mất sự hỗ trợ cho Windows-trái/phải ràng buộc chính (có vẻ như đó là bản địa thực hiện bởi Windows). Tôi muốn thực hiện lại tính năng này cho ứng dụng của mình. Vấn đề của tôi: Tôi có thể phát hiện trong một người nghe chính cho dù phím Windows đã được nhấn, nhưng tôi không thể phát hiện một phím khác (trái/phải trong trường hợp của tôi) được nhấn cùng với phím Windows (không có biến tố WINDOWS_MASK_DOWN trong InputEvent). Có lẽ ai đó biết cách giải quyết?Hỗ trợ cho Windows-Bên trái và Windows-Phải trong các hình chữ nhật không được trang trí
Đây là mã của tôi:
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 '(không có biến tố WINDOWS_MASK_DOWN trong InputEvent) .' Không có sự kiện nào được tạo khi nhấn phím phải/trái (trong JDK7), mặc dù sự kiện được tạo cho sự kiện keyReleased. Điều này cho tôi biết rằng Windows đang chặn sự kiện này. Thật lạ khi chức năng khóa bên phải/trái không hoạt động vì phím Windows + Up không phóng to cửa sổ, mặc dù Windows + Down không khôi phục cửa sổ. Vì vậy, chắc chắn có mâu thuẫn. Tôi không biết giải pháp. – camickr
Mọi cập nhật về điều này? Tôi đang gặp vấn đề tương tự và tôi đang tìm giải pháp cho vấn đề này. – Sebastian