java - SWT 组合显示列表可见时的事件通知

标签 java list events combobox swt

我正在检查指示组合显示列表是否打开的事件,但没有看到任何内容。

我想到了鼠标向下/向上事件 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/

相关文章:

java - Java:无法从实例的其他地方调用实例的get方法

java - 画廊项目背景未随 setSelection 更改

java - .jar 文件的手册页?

python - 从列表生成多个列表

python - CPython 源代码中的列表推导式在哪里实现?

events - Google Analytics 事件在开发者控制台中有效,但在页面中无效

java - 求解三个数组元素的最大乘积而不排序

Delphi - 移动重叠的 TShapes

javascript - 调用 JavaScript 类中的方法

python - 为什么 Simple String 的 Character 有这么多数组维度?