gpt4 book ai didi

java - Canvas 太小,无法在 SWT 中显示图像

转载 作者:行者123 更新时间:2023-11-30 05:09:23 26 4
gpt4 key购买 nike

我正在尝试使用 Canvas 来显示动画 gif。我的动画正在运行,但 Canvas 太小,无法看到整个图像,而且我无法调整其大小。

我什至无法使其成为第一帧的正确尺寸,因此动画/线程代码被省略。我的代码如下所示:

Composite comp = new Composite(parent, SWT.None);
comp.setLayout(new GridLayout(1, false));

final ImageLoader loader = new ImageLoader();
loader.load(getClass().getClassLoader().getResourceAsStream("MYFILE.gif"));

final Canvas canvas = new Canvas(comp, SWT.None);
final Image image = new Image(Display.getCurrent(), loader.data[0]);

canvas.addPaintListener(new PaintListener() {
public void paintControl(PaintEvent e) {
e.gc.drawImage(image, 0, 0);
}
});

无论 MYFILE.gif 有多大, Canvas 区域最终都是一个大约 30x30 的小盒子。到底是什么?

我尝试用来设置 Canvas 大小的任何内容(setSize、setBounds 等)都不起作用。

最佳答案

尝试使用setPreferredSize。布局管理器将调用 setSize 和/或 setBounds 并破坏您设置的值,但如果可以的话,它会尝试尊重首选大小。您还可以使用 setMaximumSizesetMinimumSize 来控制在调整封闭组件大小时 Canvas 的大小调整方式。

编辑:对于 SWT 你可以尝试这个:

GridData gridData = new GridData();
gridData.widthHint = imageWidth;
gridData.heightHint = imageHeight;
canvas.setLayoutData(gridData);

我不是 SWT 专家,但是 the SWT documentation看起来很有帮助。

关于java - Canvas 太小,无法在 SWT 中显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3982618/

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