我正在使用JFrame
为桌面应用程序创建图形用户界面。我使用此代码根据平台屏幕的分辨率设置GUI的大小。
this.setSize(this.getToolkit().getScreenSize());
问题是,当我运行应用程序时,GUI覆盖了整个屏幕。Windows任务栏也隐藏在GUI后面。
我希望无论任务栏的大小是什么,任务栏在任何情况下都应该是可见的。我该如何做到这一点?
发布于 2011-07-22 13:26:31
关于什么的?
jFrame.setState(JFrame.MAXIMIZED_BOTH);
发布于 2011-07-22 13:26:03
由于您使用的是JFrame,因此只需调用:
jFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
这会考虑任务栏的位置。
发布于 2011-07-22 15:05:19
您的任务栏是否设置为自动隐藏?
我刚刚在我的Windows7机器上运行了这段测试代码。
import java.awt.Frame;
import javax.swing.*;
class TestFrameSize {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame f = new JFrame("Test Screen Size");
f.setAlwaysOnTop(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
System.out.println(f.getToolkit().getScreenSize());
f.setExtendedState(Frame.MAXIMIZED_BOTH);
f.setVisible(true);
System.out.println(f.getSize());
}
});
}
}
实际上,我运行了两次。下面是输出:
配置为“自动隐藏”的任务栏
java.awt.Dimension[width=1920,height=1080]
java.awt.Dimension[width=1928,height=1088]
(其中的框架似乎比可用的屏幕空间高8个像素&宽8个像素--奇怪。)
任务栏未配置为“自动隐藏”
java.awt.Dimension[width=1920,height=1080]
java.awt.Dimension[width=1928,height=1048]
减少了40像素,并且不再覆盖任务栏。
https://stackoverflow.com/questions/6790600
复制