我的 Java SWT ScrolledComposite 有问题:
在(居中的)ScrolledComposite 中显示了许多图片预览(参见图片图像)。如果加载了 ScrolledComposite 中的图像,则需要很长时间。在那之后,预览滞后于scolling。
快速:它的性能非常差。所以我的想法是:我计算 scoll 条并仅加载显示的图片。如果用户向下滑动,它将加载其他图片。
我的(测试)代码:
Composite center = new Composite(form, SWT.NONE);
center.setLayout(new FillLayout());
ScrolledComposite centerScrolledComposite = new ScrolledComposite(center, SWT.V_SCROLL | SWT.BORDER);
Display display = getDisplay();
Image image1 = display.getSystemImage(SWT.ICON_WORKING);
Image image2 = display.getSystemImage(SWT.ICON_QUESTION);
Image image3 = display.getSystemImage(SWT.ICON_ERROR);
Composite wrappedScrolledComposite = new Composite(centerScrolledComposite, SWT.NONE);
for (int i = 0; i <= 5000; i++)
{
Label label = new Label(wrappedScrolledComposite, SWT.NONE);
if (i % 3 == 0)
label.setImage(image1);
if (i % 3 == 1)
label.setImage(image2);
if (i % 3 == 2)
label.setImage(image3);
}
RowLayout layout = new RowLayout(SWT.HORIZONTAL);
layout.wrap = true;
wrappedScrolledComposite.setLayout(layout);
centerScrolledComposite.setContent(wrappedScrolledComposite);
centerScrolledComposite.setExpandHorizontal(true);
centerScrolledComposite.setExpandVertical(true);
centerScrolledComposite.addControlListener(new ControlAdapter() {
public void controlResized(ControlEvent e) {
Rectangle r = centerScrolledComposite.getClientArea();
centerScrolledComposite.setMinSize(wrappedScrolledComposite.computeSize(r.width, SWT.DEFAULT));
}
});
但是..我不知道这是否可能。有没有人有类似的问题?谢谢
PS:我需要一个与 Windows 10 文件浏览器非常相似的视图,其中“Big Icos”作为预览......以及相同的性能:)