gpt4 book ai didi

java - ScrolledComposite 不通过鼠标滚轮滚动

转载 作者:行者123 更新时间:2023-12-02 05:29:32 30 4
gpt4 key购买 nike

鼠标滚轮在 macOS 上工作正常,但在 Windows 上无法工作。

这是我的布局结构,我实现了鼠标滚轮监听器,但它没有触发。

structure

    scrolledComposite.addListener(SWT.MouseWheel, new Listener() {
public void handleEvent(Event event) {
System.out.println("MOUSE WHEEL");
int wheelCount = event.count;
wheelCount = (int) Math.ceil(wheelCount / 3.0f);
while (wheelCount < 0) {
scrolledComposite.getVerticalBar().setIncrement(4);
wheelCount++;
}

while (wheelCount > 0) {
scrolledComposite.getVerticalBar().setIncrement(-4);
wheelCount--;
}
}
});

和我的滚动复合声明:

    final ScrolledComposite scrolledComposite = new ScrolledComposite(mainComposite, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
scrolledComposite.setExpandHorizontal(true);
scrolledComposite.setExpandVertical(true);
scrolledComposite.setBackground(SWTResourceManager.getColor(SWT.COLOR_MAGENTA));

final Composite listComposite = new Composite(scrolledComposite, SWT.NONE);
GridLayout layout = new GridLayout();
layout.numColumns = 1;
listComposite.setLayout(layout);

final Composite composite_3 = new Composite(listComposite, SWT.NONE);
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 8;
composite_3.setLayout(gridLayout);

scrolledComposite.setContent(listComposite);
scrolledComposite.setMinSize(listComposite.computeSize(SWT.DEFAULT,SWT.DEFAULT));

/////////////////从头开始的示例它也不起作用。

    shell = new Shell();
shell.setSize(450, 300);
shell.setText("SWT Application");
shell.setLayout(new FormLayout());

Composite composite = new Composite(shell, SWT.NONE);
composite.setBackground(SWTResourceManager.getColor(SWT.COLOR_YELLOW));
FormData fd_composite = new FormData();
fd_composite.bottom = new FormAttachment(0, 46);
fd_composite.right = new FormAttachment(100);
fd_composite.top = new FormAttachment(0);
fd_composite.left = new FormAttachment(0);
composite.setLayoutData(fd_composite);
composite.setLayout(new FillLayout(SWT.HORIZONTAL));

Composite composite_1 = new Composite(shell, SWT.NONE);
FormData fd_composite_1 = new FormData();
fd_composite_1.right = new FormAttachment(0, 100);
fd_composite_1.top = new FormAttachment(composite, 1);
fd_composite_1.left = new FormAttachment(0);
fd_composite_1.bottom = new FormAttachment(100);
composite_1.setLayoutData(fd_composite_1);

Composite composite_2 = new Composite(shell, SWT.NONE);
composite_2.setLayout(new FillLayout(SWT.HORIZONTAL));
FormData fd_composite_2 = new FormData();
fd_composite_2.top = new FormAttachment(composite, 1);
fd_composite_2.left = new FormAttachment(composite_1, 1);
fd_composite_2.bottom = new FormAttachment(100);
fd_composite_2.right = new FormAttachment(100);
composite_2.setLayoutData(fd_composite_2);

ScrolledComposite scrolledComposite = new ScrolledComposite(composite_2, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
scrolledComposite.setBackground(SWTResourceManager.getColor(SWT.COLOR_DARK_RED));
scrolledComposite.setExpandHorizontal(true);
scrolledComposite.setExpandVertical(true);

Composite composite_3 = new Composite(scrolledComposite, SWT.NONE);
composite_3.setLayout(new GridLayout(1, false));

Composite composite_4 = new Composite(composite_3, SWT.NONE);
composite_4.setBackground(SWTResourceManager.getColor(SWT.COLOR_BLUE));

Composite composite_5 = new Composite(composite_3, SWT.NONE);
composite_5.setBackground(SWTResourceManager.getColor(SWT.COLOR_MAGENTA));

Composite composite_7 = new Composite(composite_3, SWT.NONE);
composite_7.setBackground(SWTResourceManager.getColor(SWT.COLOR_DARK_BLUE));

Composite composite_6 = new Composite(composite_3, SWT.NONE);
scrolledComposite.setContent(composite_3);
scrolledComposite.setMinSize(composite_3.computeSize(SWT.DEFAULT, SWT.DEFAULT));

最佳答案

我遇到了同样的问题,谷歌搜索后,我发现了这个:

scrolledComposite.addListener(SWT.Activate, new Listener() {
public void handleEvent(Event e) {
scrolledComposite.setFocus();
}
});

这对我有用。

关于java - ScrolledComposite 不通过鼠标滚轮滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25685522/

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