2012-01-02 96 views
21

我使用練習下面的代碼,如何刪除標題欄在JFrame中

http://docs.oracle.com/javase/tutorial/uiswing/examples/layout/BorderLayoutDemoProject/src/layout/BorderLayoutDemo.java

我也createAndShowGUI添加

frame.setSize(frame.getMaximumSize()); 

()方法,

什麼更多我想這個窗口沒有標題欄,關閉並最小化按鈕。

我嘗試下面的代碼,

frame.setUndecorated(true); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

如果我的包()前加入這段代碼,它進入英輝環路與此異常異常在線程「AWT-EventQueue的 - 0」的java.lang .NegativeArraySizeException

如果我添加createAndShowGUI()方法它引發異常在線程 「AWT-EventQueue的-0」 java.awt.IllegalComponentStateException的最後一行:幀是可顯示的。

我該怎麼辦?

謝謝。

回答

32
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Already there 
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH); 
    frame.setUndecorated(true); 
+1

非常感謝,這與最大尺寸 – CanCeylan 2012-01-02 14:28:00

+1

合作,謝謝很多工作正常 – 2014-10-14 11:24:38

+2

這隻適用於如果你想你的框架被最大化。如果你不確定在打包幀之前先設置Undecorated(true)。 – 2015-05-29 12:09:24

5

那麼,在createAndShowGUI()下面的代碼片段爲我工作:

JFrame frame = new JFrame("BorderLayoutDemo"); 
frame.setUndecorated(true); // Remove title bar 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
addComponentsToPane(frame.getContentPane()); 
frame.pack(); 
frame.setVisible(true); 

請注意,我不知道你試圖通過手動設置的未實現幀它的尺寸達到什麼是最大尺寸,最初將爲(0, 0)

+0

是的,這是正確的,謝謝!我刪除setSize後,它的工作。但我無法弄清楚如何將JFrame實例的大小設置爲(0,0)? – CanCeylan 2012-01-02 14:17:31