gpt4 book ai didi

java - 尝试用Java在任务栏中显示进度条图标,但我得到的只是一条黑线

转载 作者:行者123 更新时间:2023-11-30 04:12:49 25 4
gpt4 key购买 nike

我尝试使用以下代码创建一些进度条图像:

public static void makeImage(int percent)
{
BufferedImage img = new BufferedImage(100, 30, BufferedImage.TYPE_INT_ARGB);
Graphics g = img.getGraphics();

g.setColor(Color.LIGHT_GRAY);
g.fillRect(0, 0, 100, 30);

for (int x = 0; x < percent; x++)
{
for (int y = 0; y < img.getHeight(); y++)
{
img.setRGB(x, y, Color.GREEN.darker().getRGB() );
}
}

ImgUtility.save("/home/xxx/java/myProj/src/myProj/resources/progressbars/"
+ percent + ".png", img);
}

这会创建一堆从 1.png 到 100.png 的 100x30 图像,如下所示:

1.png

50.png

100.png

然后,我尝试在托盘中显示这些图像,并一张一张地循环显示它们,以显示动画进度条的错觉(在实际使用中,我想使用这些图像来显示进度条)正在完成的任务):

    Tray tray = Display.getDefault().getSystemTray();
TrayItem trayItem = new TrayItem(tray, SWT.NONE);

for (int p = 1; p <= 100; p++)
{
Image icon = IconLoader.load("progressbars/" + p + ".png");
System.out.println(icon.getBounds()); //always outputs
//Rectangle {0, 0, 100, 30}, showing that the 100x30 images were loaded
//correctly.
trayItem.setImage(icon);
try
{
Thread.sleep(1000);
}
catch (Exception e)
{
e.printStackTrace();
System.exit(0);
}
}

但是,当我运行此代码时,我只看到一条垂直的黑色/深绿色线,而不是在任务栏中看到完整的图像。

我使用的是 Linux Mint。

我做错了什么......?

最佳答案

操作托盘图标的代码在什么上下文中运行?是否有可能阻止 UI 线程绘制图标?我不确定,但您可能需要在单独的线程上执行此操作。

关于java - 尝试用Java在任务栏中显示进度条图标,但我得到的只是一条黑线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19215698/

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