我正在检查指示组合显示列表是否打开的事件,但没有看到任何内容。
我想到了鼠标向下/向上事件 Hook ,但我很快意识到用户按下并释放鼠标来显示列表。此外,还可以使用键盘。
我看到了this article ,它说使用 getListVisible() 方法,但这要么是某种计时器。鼠标松开事件对于实现检查来说不太准确,并且计时器对于简单任务来说似乎是大材小用。
cboServers = new Combo(this.cmptLogHtsControl, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);
cboServers.addMouseListener(new MouseAdapter()
{
@Override
public void mouseDown(MouseEvent arg0)
{
}
@Override
public void mouseUp(MouseEvent arg0)
{
}
});
gridData = new GridData(GridData.FILL, GridData.FILL, true, true);
gridData.widthHint = 300;
cboServers.setLayoutData(gridData);
this.cboServers.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(SelectionEvent arg0)
{
}
});
我错过了什么吗?想法?
最佳答案
由于弹出窗口是由 native 控件完成的,因此可能没有任何方法可以看到这一点。
查看 Mac OS X 上 Combo
的实现 getListVisible()
是使用特定于 OS X 且未在 SWT API 中公开的事件完成的。
关于java - SWT 组合显示列表可见时的事件通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33883442/