相关疑难解决方法(0)

如何删除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:该框架是可显示的.

我该怎么办 ?

谢谢.

java swing titlebar jframe

22
推荐指数
2
解决办法
6万
查看次数

从侦听器中修改JFrame

可能重复:
如何在框架可见后调用setUndecorated()?

如果没有焦点并且在聚焦时装饰,我应该如何使JFrame不修饰?

这是我的代码:

import java.awt.event.*;
import javax.swing.*;

public class Test extends JFrame
{
    public Test()
    {
        setSize(100, 50);
        addWindowFocusListener(new WindowAdapter()
        {
            public void windowGainedFocus(WindowEvent e)
            {
                setUndecorated(false);
                System.out.println("Hi!");
            }
            public void windowLostFocus(WindowEvent e)
            {
                setUndecorated(true);
                System.out.println("Bye!");
            }
        });
    }

    public static void main(String[] args) 
    {
        new Test().setVisible(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是运行时和聚焦/不聚焦时的问题:

Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: The frame is displayable.
    at java.awt.Frame.setUndecorated(Frame.java:825)
    at Test$1.windowGainedFocus(Test.java:13)
    at java.awt.Window.processWindowFocusEvent(Window.java:1952)
    at java.awt.Window.processEvent(Window.java:1867)
    at java.awt.Component.dispatchEventImpl(Component.java:4750)
    at java.awt.Container.dispatchEventImpl(Container.java:2103)
    at java.awt.Window.dispatchEventImpl(Window.java:2518)
    at java.awt.Component.dispatchEvent(Component.java:4576)
    at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1895)
    at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:965) …
Run Code Online (Sandbox Code Playgroud)

java swing focus awt jframe

5
推荐指数
1
解决办法
2290
查看次数

有没有办法删除框架装饰而不重新打开它?

我正在制作一个简单的圣经阅读器,我希望有一个全屏选项.默认情况下,帧最大化,但框架在那里.我有一个方法,setFullScreen删除装饰.但是,它在初始化后似乎没有更新.有没有解决的办法?

setFullScreen 方法:

public void setFullScreen() {
    mainFrame.setUndecorated(true);
}
Run Code Online (Sandbox Code Playgroud)

该部分main方法

UI book = new UI();
book.setLabelText(1);
book.setFullScreen();
Run Code Online (Sandbox Code Playgroud)

同时,setLabelText表现同样; 一旦我第一次设置它,我就无法改变它.

java jframe

3
推荐指数
1
解决办法
706
查看次数

标签 统计

java ×3

jframe ×3

swing ×2

awt ×1

focus ×1

titlebar ×1