Tôi đang cố gắng tạo một cửa sổ toàn màn hình bao phủ toàn bộ màn hình bằng cách sử dụng Java. Cửa sổ này cũng phải có độ trong suốt (khoảng 30% -50% trong suốt). Khi nói toàn bộ màn hình, tôi có nghĩa là nó bao gồm mọi thứ (bao gồm dock/taskbar/menubar trong OSX/Linux/Windows), và khi tôi nói với transparancy, tôi có nghĩa là một thời gian thực trong suốt và không chỉ là một ảnh chụp màn hình bị tấn công. Dưới đây là những gì tôi biết/đã thử:cửa sổ toàn màn hình java với độ trong suốt
- Sử dụng Java toàn màn hình API: trong khi nó tạo ra một chế độ toàn màn hình thực sự, bạn không thể minh bạch với nó (chỉ màu đục). Một hack là chụp ảnh màn hình của toàn bộ màn hình nền và đặt nó làm nền cho cửa sổ, nhưng điều này có nghĩa là nó không phải là thời gian thực trong suốt.
- Đặt kích thước cửa sổ để phù hợp với kích thước màn hình: trong khi nó lấp đầy toàn màn hình, trong một số hệ điều hành nhất định (ví dụ: Mac OS X), cửa sổ sẽ được hiển thị phía sau thanh dock/menubar chứ không phải phía trên nó. Tuy nhiên, tính minh bạch làm việc ở đây.
- Sử dụng API setWindowOpacity: nó hoạt động trong trường hợp thứ hai, nhưng không phải trong API đầu tiên (Fullscreen API)
- Sử dụng setBackground with alpha: hoạt động như setWindowOpacity, nhưng chỉ trong một số hệ điều hành nhất định. Nhưng cũng không hoạt động với API toàn màn hình.
- Sử dụng JFrame/JWindow/JDialog/Khung/Window: cố gắng mỗi mô hình cửa sổ tôi có thể, mà không cần bất kỳ may mắn
Vì vậy, tôi hỏi nếu điều này có thể thông qua một hack khác mà tôi không biết, sau đó Tôi rất vui khi được nghe về.
Mục tiêu là phủ lớp toàn màn hình nửa suốt trên màn hình.
tôi một thời gian ngắn đang theo đuổi một cái gì đó tương tự như trong tuần này. Tôi đã hy vọng tạo ra một bộ lọc màu. Nhấp chuột sẽ cần phải nhấn các mục phía sau bộ lọc chứ không phải bộ lọc. Tôi đã không nghiên cứu quá chăm chỉ, vì vậy nếu có ai đó ở đó biết thì tuyệt vời! – mrswadge
@mrswadge: bạn có thể thêm người nghe chuột vào cửa sổ của mình và sau đó khi sự kiện chuột được kích hoạt (ví dụ: nhấp), chuyển cửa sổ và sử dụng java.awt.Robot để mô phỏng sự kiện (mousePress). Điều này giải quyết một phần vấn đề của bạn. Cho phép hy vọng họ giải quyết một phần về sự thật toàn màn hình/minh bạch. – ccit