如何删除JFrame中的标题栏

Can*_*lan 22 java swing titlebar jframe

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

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

我还补充道

frame.setSize(frame.getMaximumSize());
Run Code Online (Sandbox Code Playgroud)

在createAndShowGUI()方法中,

更重要的是我希望这个窗口没有标题栏,关闭和最小化按钮.

我尝试了以下代码,

frame.setUndecorated(true);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Run Code Online (Sandbox Code Playgroud)

如果我在pack()之前添加了这段代码,它会进入infine循环,这个异常在线程"AWT-EventQueue-0"中有异常java.lang.NegativeArraySizeException

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

我该怎么办 ?

谢谢.

Joo*_*gen 34

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Already there
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
    frame.setUndecorated(true);
Run Code Online (Sandbox Code Playgroud)

  • 这仅适用于您希望最大化框架的情况.如果你没有,那么在打包框架之前一定要设置unUncorated(true). (2认同)

mre*_*mre 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);
Run Code Online (Sandbox Code Playgroud)

请注意,我不确定您要通过手动将未实现帧的大小设置为其最大大小来实现的目标,这将是(0, 0)最初的.