gpt4 book ai didi

JAVA SWT 动画 GIF

转载 作者:行者123 更新时间:2023-12-02 01:58:59 25 4
gpt4 key购买 nike

我需要以微调器的形式将动画 gif 添加到某些 SWT 小部件中,例如标签。该标签将作为默认的labelSpiner.setEnabled(false)。当我开始一些长时间操作时,带有微调器的标签将在窗口右上角显示(labelSpinner.setEnabled(true))。

通常可以通过labelSpinner.setImage(arg0)将图像添加到Label

如果我将此 SPINNER.GIF 正常方式添加到标签中,它不会动画,它是唯一的静态图像。

有人知道如何将动画 gif(例如一些旋转器)添加到基于 SWT 的 JAVA SE 应用程序小部件中吗?我浏览了很多例子,但很多都没用,而且那些好的例子也太复杂了。

我想做的很简单。

有人可以帮忙吗?

最佳答案

您是否尝试过有关 SWT Images 的 Eclipse 文章? ?

这部分将加载图像并将其显示在 Canvas 中:

ImageLoader loader = new ImageLoader();
loader.load(getClass().getResourceAsStream("Idea_SWT_Animation.gif"));
Canvas canvas = new Canvas(shell,SWT.NONE);
image = new Image(display,loader.data[0]);
int imageNumber;
final GC gc = new GC(image);
canvas.addPaintListener(new PaintListener(){
public void paintControl(PaintEvent event){
event.gc.drawImage(image,0,0);
}
});

这部分更新了 gif:

Thread thread = new Thread(){
public void run(){
long currentTime = System.currentTimeMillis();
int delayTime = loader.data[imageNumber].delayTime;
while(currentTime + delayTime * 10 > System.currentTimeMillis()){
// Wait till the delay time has passed
}
display.asyncExec(new Runnable(){
public void run(){
// Increase the variable holding the frame number
imageNumber = imageNumber == loader.data.length-1 ? 0 : imageNumber+1;
// Draw the new data onto the image
ImageData nextFrameData = loader.data[imageNumber];
Image frameImage = new Image(display,nextFrameData);
gc.drawImage(frameImage,nextFrameData.x,nextFrameData.y);
frameImage.dispose();
canvas.redraw();
}
});
}
};
shell.open();
thread.start();

关于JAVA SWT 动画 GIF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13479833/

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