我希望JFrame的大小完全适合我的屏幕。我使用getScreenSize();
来解析计算机并将其设置为JFrame
的大小。但是我发现由于标题栏,Jframe的大小实际上比我的计算机的分辨率大。 (这意味着你会发现jframe的底部是在窗口任务栏后面)
以下代码说明了我的问题:
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
public class Titlebar extends JFrame {
private final Dimension _screenSize = Toolkit.getDefaultToolkit().getScreenSize();
public void run(){
this.setTitle("TitleBar");
this.setSize(_screenSize);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
Titlebar test = new Titlebar();
test.run();
}
}
可以设置jframe大小减去标题栏的大小吗?
答案 0 :(得分:1)
有两种方式: 1.使用代码“最大化”窗口,即添加以下内容:
this.setExtendedState( this.getExtendedState()|JFrame.MAXIMIZED_BOTH );
您的代码如下所示:
public class Titlebar extends JFrame {
private final Dimension _screenSize = Toolkit.getDefaultToolkit().getScreenSize();
public void run(){
this.setTitle("TitleBar");
this.setSize(_screenSize);
this.setExtendedState( this.getExtendedState()|JFrame.MAXIMIZED_BOTH );
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
Titlebar test = new Titlebar();
test.run();
}
}
2。此选项是解决方法,即始终保持在顶部,然后您将在任务栏上看到这一点,即添加以下内容:
this.setAlwaysOnTop(true);
您的代码将是这样的:
public class Titlebar extends JFrame {
private final Dimension _screenSize = Toolkit.getDefaultToolkit().getScreenSize();
public void run(){
this.setTitle("TitleBar");
this.setSize(_screenSize);
this.setAlwaysOnTop(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
Titlebar test = new Titlebar();
test.run();
}
}
根据您的需要,您可以选择该选项。但我相信选项1对你有好处。