如何删除JFrame中的标题栏

时间:2012-01-02 13:58:09

标签: java swing jframe titlebar

我正在使用以下代码进行练习,

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

我也添加了

frame.setSize(frame.getMaximumSize());

在createAndShowGUI()方法中,

更多我希望此窗口没有标题栏,关闭和最小化按钮。

我尝试了以下代码,

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

如果我在pack()之前添加了这段代码,它会进入infine循环,并出现此异常线程中的异常“AWT-EventQueue-0”java.lang.NegativeArraySizeException

如果我添加了createAndShowGUI()方法的最后一行,它会在线程“AWT-EventQueue-0”中抛出异常java.awt.IllegalComponentStateException:该框架是可显示的。

我该怎么办?

感谢。

2 个答案:

答案 0 :(得分:33)

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

答案 1 :(得分: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)