2012-01-02 69 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