使用独立SWT滚动条是一种破解(使用this workaround),但它可以完成。这里有一个片段:SWT滚动条上的鼠标事件
ScrolledComposite scrolledComposite = new ScrolledComposite(
parent, SWT.V_SCROLL);
ScrollBar scrollbar = scrolledComposite.getVerticalBar();
Shell tip = new Shell(UserInterface.getShell(), SWT.ON_TOP
| SWT.NO_FOCUS | SWT.TOOL);
// ..stylize and fill the tooltip..
现在我想要做的是监视用户与滚动条交互时。特别是,我想知道用户何时拖动滚动条—以及何时发布了—以显示Office 2007样式的工具提示,以显示滚动条位置与哪个页面相对应。
目前,我有以下的代码,其显示工具提示:
scrollbar.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent event) {}
public void widgetSelected(SelectionEvent event) {
tip.setVisible(true);
}
}
这似乎逻辑然后有工具提示消失时释放鼠标按钮:
scrollbar.addListener(SWT.MouseUp, new Listener() {
public void handleEvent(Event event) {
tip.setVisible(false);
}
});
但是,scrollbar
和scrolledComposite
似乎都不会对SWT.MouseUp
ev当用户与滚动条交互时。
我目前有一个解决方法,在超时后隐藏提示,但我对此不满意。任何见解都将非常感谢!
优秀!我会看看早晨是否足够第一件事。 – 2009-11-25 23:36:26
工程就像一个魅力!非常感谢你! – 2009-11-26 09:21:40