gpt4 book ai didi

java - 如何在Java SWT中创建不显示的图像

转载 作者:行者123 更新时间:2023-12-01 21:14:56 25 4
gpt4 key购买 nike

我正在学习 SWT,目标是创建一个向导。我正在修改现有的教程。此时,我尝试在向导的一页中显示图像:

class FrontPage extends WizardPage {

FrontPage() {
super("FrontPage");
setTitle("Listes des joueurs");
setDescription("Veuillez déplacer toutes les listes dans le même fichier (ex: C:\\Badminton\\)");
}

public void createControl(Composite parent) {
Composite composite = new Composite(parent, SWT.NULL);
GridLayout gridLayout = new GridLayout(2, false);
composite.setLayout(gridLayout);

Canvas canvas = new Canvas(composite, SWT.NONE);
canvas.setBounds(10, 10, 693, 253);

canvas.addPaintListener(new PaintListener() {
public void paintControl(PaintEvent e) {
Image image = new Image(null, "C:\\Benoit\\Work\\Java\\Badminton\\Folder_List_Players.png");

e.gc.drawImage(image, 10, 10);

image.dispose();
}
});

setControl(composite);

}

}

运行此代码时,我的图像(大约 600 x 200)显示为缩略图 (10x10)。我想以全尺寸显示它。

  1. 我知道 Image 构造函数中可能有一个 Display 对象,但我不确定如何使其与 Composite 父对象一起使用。但有趣的是,我仍然能够使用空 Display 对象显示图像。

  2. canvas.setBounds(10, 10, 693, 253);似乎没有任何影响。

预先感谢您的任何提示或帮助!!!

最佳答案

如果使用空 Display 创建图像,则使用当前 Display。为了清楚起见,您应该在创建图像时始终提供一个 Display。

并且也不乏对当前显示的引用,例如:

Display display = event.display;

Display display = parent.getDisplay();

为了显示图像,最好使用像这样的标签:

Label imageLabel = new Label( parent, SWT.NONE );
imageLabel.setImage( ... );

对于布局控件,请避免使用 setBounds() 和绝对坐标。请改用布局管理器:https://www.eclipse.org/articles/article.php?file=Article-Understanding-Layouts/index.html

关于java - 如何在Java SWT中创建不显示的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40384897/

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