2012-09-20 33 views
6

Vì vậy, tôi đang sử dụng Ubuntu và khi tôi muốn vào chế độ toàn màn hình trong Java, một cửa sổ bình thường xuất hiện với kích thước màn hình tối đa, thay vì cửa sổ toàn màn hình không có thanh tiêu đề v.v. thậm chí không chắc chắn chế độ toàn màn hình sẽ trông như thế nào trong Java, bởi vì tôi chưa thử nó trên bất kỳ hệ điều hành nào khác. Nhưng tôi cho rằng nó phải là một màn hình không có thanh tiêu đề. Bất kỳ ai khác có vấn đề này?Chế độ toàn màn hình Java không hoạt động trên Ubuntu

Đây là mã tôi sử dụng. ; khá thẳng về phía trước.

public static void main(String[] args) { 
    GraphicsEnvironment env = GraphicsEnvironment 
      .getLocalGraphicsEnvironment(); 
    GraphicsDevice vc = env.getDefaultScreenDevice(); 
    JFrame window = new JFrame(); 
    window.setUndecorated(false); 
    window.setResizable(false); 
    vc.setFullScreenWindow(window); 
} 
+3

vc.isFullScreenSupported() trả về cái gì? – Adam

+0

Có thể thử trên một hệ điều hành khác và sau đó cập nhật câu hỏi của bạn? – JMK

+0

Tôi chạy mã của bạn trên Windows 7 và hiện tượng tương tự xuất hiện - Cửa sổ kích thước đầy đủ của màn hình, với thanh tiêu đề.Tôi nghĩ đây là hành vi mong đợi. –

Trả lời

3

Trên win7, với mã này (tôi đặt cờ chưa được đặt thành đúng như đề xuất của @Gilberto và thêm bảng màu đỏ) có vẻ như hoạt động OK. Nếu nó không hoạt động trên Ubuntu, thì điều đó có nghĩa là chế độ FullScreen không được hỗ trợ:

+0

@trashgod có thực sự, tôi đã không thực sự thêm một tính năng thoát ;-) –

+0

Tôi làm việc, nhưng tôi vẫn thấy thanh tiêu đề, nhưng không có tùy chọn đóng hoặc thay đổi kích thước. Vì vậy, đó là tốt :) – Jon

+0

@Jon Đó là lạ. Bạn có chắc là bạn đã gọi 'setUndecorated (true)' thay vì 'false'. Theo nhận xét của trashgod, nó cũng hoạt động tốt trên Ubuntu. –

4

Trên Ubuntu (có thể là Linux khác), nó không hoạt động. Chế độ toàn màn hình trong Java không bao gồm toàn màn hình nhưng để lại thanh công cụ. Luôn luôn, bất cứ điều gì bạn làm.

Tôi đã thử hai ví dụ trên và các ví dụ từ FSEM tutorial và một số ứng dụng tôi biết đang sử dụng chế độ Java/Swing và Toàn màn hình (FreeCol và TripleX) và không ai có thể bao gồm các khu vực nhiệm vụ/thanh công cụ của màn.

Cấu hình của tôi là Ubuntu 12.10 với OpenJDK hoặc SUN-JRE 1.7.0_09 và Unity hoặc Gnome. Điều thú vị là cuộc gọi java tới isFullScreenSupported() trả về true. Vì vậy, trong khi Java JRE nói là hỗ trợ toàn màn hình độc quyền, nó không.

Một số giải thích có thể có thể được đưa ra trong một question khác.

0

Mặc dù điều này có thể xảy ra trong hầu hết các trường hợp không thể áp dụng được Tôi muốn chia sẻ giải pháp của mình cho vấn đề này.

Trong trường hợp của tôi, tôi thường xuyên cần phát triển các ứng dụng Java/Scala cho trường đại học của chúng tôi (kiểm tra tâm lý). Để circumpass vấn đề này, chúng tôi quyết định cài đặt sawfish trên máy tính thử nghiệm của chúng tôi.

Nếu giải pháp này phù hợp với nhu cầu của bạn, bạn có thể cài đặt (một con cá sấu cực kỳ lỗi thời) thông qua cơ sở Ubuntu (Trung tâm phần mềm, Aptitute, apt-get) hoặc - những gì tôi thích - cài đặt hoặc biên dịch ngày cá sấu bằng tay.

Trình quản lý cửa sổ và/hoặc máy tính để bàn khác có thể cung cấp chức năng tương tự, nhưng chúng tôi đã gặp phải các hiện vật khi chúng tôi thử XFCE hoặc LXDE với bảng bị vô hiệu/bị xóa.

1

Chuỗi này rất cũ nhưng vẫn xuất hiện trong kết quả tìm kiếm ACTUAL nhưng có câu trả lời sai. Vì vậy, tôi sẽ đăng giải pháp thực sự thực sự.

Swing toàn màn hình sẽ được thiết lập với các setExtendedState() chức năng, không phải với setFullScreenWindow() chức năng!

JFrame myFrame = new JFrame(); 
.... 
myFrame.setExtendedState(MAXIMIZED_BOTH); 

Sau đó, bạn sẽ có cửa sổ toàn màn hình được trang trí, hoạt động tốt với Ubuntu và mọi hệ điều hành khác.

+0

Có. Những công việc này. – ice1000

Các vấn đề liên quan