JFrame setSize 为屏幕大小但减去标题栏
JFrame setSize as screen size but minus titlebar
我想要 JFrame 的大小完全适合我的屏幕。我使用 getScreenSize();
获取计算机的分辨率并将其设置为 JFrame
的大小。但是我发现由于标题栏的原因,Jframe 的大小实际上比我的计算机的分辨率大。 (这意味着你会发现 jframe 的底部在 window 任务栏后面)
以下代码说明了我的问题:
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 大小减去标题栏的大小?
有两种方式:
1. 仅 "Maximize" window 使用代码,即添加以下内容:
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 对你有好处。
我想要 JFrame 的大小完全适合我的屏幕。我使用 getScreenSize();
获取计算机的分辨率并将其设置为 JFrame
的大小。但是我发现由于标题栏的原因,Jframe 的大小实际上比我的计算机的分辨率大。 (这意味着你会发现 jframe 的底部在 window 任务栏后面)
以下代码说明了我的问题:
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 大小减去标题栏的大小?
有两种方式: 1. 仅 "Maximize" window 使用代码,即添加以下内容:
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 对你有好处。