gpt4 book ai didi

Java Swing GUI 在 Windows 任务栏后面呈现

转载 作者:行者123 更新时间:2023-12-01 13:40:29 30 4
gpt4 key购买 nike

我对我的应用程序的 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 上

GUI on Linux

在 Windows 上

GUI on Windows

最佳答案

要在 Windows 上实现任务栏透明,需要将桌面大小报告为“没有任务栏”以使像素与任务栏的 Alpha channel 混合。当您将任务栏设置为不透明时,您将获得所需的行为。

操作系统正在向 Swing/Java 输入屏幕尺寸上的数字,如果输入一组数字,它将按照指示使用它们。

解决这个问题的唯一方法是为有问题的操作系统编写自定义“操作系统”检测代码、自定义“任务栏”检测代码,并编写 Swing 重新配置例程以“调整”尺寸到更小的占用空间,而不管操作系统是什么正在报告足迹是。这种代码是高度不可移植的,在创建 Swing 时肯定不需要,所以它不是 Swing 原生的。

关于Java Swing GUI 在 Windows 任务栏后面呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35220644/

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