我正在使用以下代码进行练习,
我还补充道
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:该框架是可显示的.
我该怎么办 ?
谢谢.
如果没有焦点并且在聚焦时装饰,我应该如何使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) 我正在制作一个简单的圣经阅读器,我希望有一个全屏选项.默认情况下,帧最大化,但框架在那里.我有一个方法,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
表现同样; 一旦我第一次设置它,我就无法改变它.