【发布时间】:2016-05-15 05:21:32
【问题描述】:
我对应用程序的 GUI 位置感到不安。这意味着在 Linux (Centos 6) 中,它从任务栏上方正确显示,但在 Windows 8.1 中,它从屏幕底部显示在任务栏后面。可能是什么问题?
我正在使用以下代码设置尺寸。 (我在下面附上了屏幕)
UiConfig.getInstance().bottomRightUI(dispalyWidth, displayeHeight);
setBounds(UiConfig.getInstance().getX(), UiConfig.getInstance().getY(),
dispalyWidth, displayeHeight);
以下用于从当前屏幕获取动态尺寸的类
public class UiConfig {
private static final UiConfig instance = new UiConfig();
public static UiConfig getInstance() {
return instance;
}
public void bottomRightUI(int width, int height) {
x = (int) ((screen_width - width));
y = (int) ((screen_height - height));
}
public int getX() {
return this.x;
}
public int getY() {
return this.y;
}
}
在 Linux 上
在 Windows 上
【问题讨论】:
-
不是有windows设置让任务栏一直在前面吗?对我来说似乎与 Java 无关。
-
@Thomas ;在 Windows 上运行的其他应用程序正常(意味着正常)。
-
这是 Windows 的一种标准行为,它在除无边框窗口之外的所有内容上呈现任务栏(例如具有无边框窗口功能的游戏,但它们通常使用 DirectX 呈现)。我认为不可能在它前面渲染一个窗口。 @ChamindaBandara 所以其他应用程序将在任务栏上呈现?
-
是的,这是操作系统的预期行为。我会计算屏幕上的“安全”区域并在其中设置窗口的位置。也许像this
-
TaskBar 使用 GraphicsEnviroment 返回整数值(像素),现在不知道 TaskBar 是否可隐藏
标签: java linux windows swing user-interface