gpt4 book ai didi

java - JFrame 不采用实际屏幕尺寸

转载 作者:行者123 更新时间:2023-12-02 08:50:50 24 4
gpt4 key购买 nike

我一直在尝试将 JFrame 的大小设置为与屏幕大小完全相同 (2256x1504)。它似乎也采用了这个尺寸,但是当我展示一些东西时,结果总是比预期的要大。

public class Frame extends JFrame {

public Frame() {
JPanel p = new JPanel();
int width = 2256;
int height = 1504;
Dimension size = new Dimension(width,height);
p.setPreferredSize(size);
p.setMinimumSize(size);
p.setMaximumSize(size);
p.setSize(size);
this.setUndecorated(true);
this.setContentPane(p);
this.pack();
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setAlwaysOnTop(true);
this.setVisible(true);
}
}

最佳答案

int width = 2256;
int height = 1504;

猜测您的屏幕尺寸为 2556x1504。你给框架这个尺寸。当我们全屏显示一个程序时(从操作系统在窗口右上角给出的默认按钮),它不会获取屏幕的大小。它需要屏幕的大小 - 操作系统任务栏的高度。我不知道是否适用于其他操作系统,但是如果您想在 Windows 中使未修饰的框架全屏并涉及任务栏,则必须使用此:

public class Frame extends JFrame {

public Frame() {
JPanel p = new JPanel();
int width = 2256;
int height = 1504;
Dimension size = getScreenDimensionWithoutTaskbar(this);
p.setPreferredSize(size);
p.setMinimumSize(size);
p.setMaximumSize(size);
p.setSize(size);
this.setUndecorated(true);
this.setContentPane(p);
this.pack();
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setAlwaysOnTop(true);
this.setVisible(true);
}
public static Dimension getScreenDimensionWithoutTaskbar(Frame frame) {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int width = screenSize.width;
int height = screenSize.height;
Insets screenInsets = Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration());
int taskBarSize = screenInsets.bottom;
return new Dimension(width, height - taskBarSize);
}
public static void main(String[] args) {
new Frame();
}


}

关于java - JFrame 不采用实际屏幕尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60787057/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com