- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了 SWT 问题。我想推迟 ViewerComparator 类的创建,直到用户真正想要从 ComboViewer 中选择一个项目。在我的用例中,比较器是一个非常复杂的野兽,使用大量资源。用户通常不需要实际打开 CombiViewer,因此我认为可以通过将比较器的创建推迟到真正需要的时候来节省计算时间。
这是我尝试过的:
comboViewer1.addOpenListener(new IOpenListener(){
@Override
public void open(OpenEvent event) {
if (comboViewer1.getComparator() == null){
comboViewer1.setComparator(new ViewerComp(transientModelThing.getComRef()));
}
}
});
我对SWT和JFace不太熟悉。但在调试器中我看到这个 open 方法从未被调用。我预计当用户尝试折叠组合框时会调用它。
不知道监听器为何不工作?我以大致相同的方式注册的 postSelectionListener 可以完美运行。 comboViewer1 和transientModelThing 是公共(public)全局变量。 ViewerComp 是我的私有(private)类,它实现了这个复杂的比较器。
最佳答案
秉承在问题得到解决后回答自己的问题的良好传统,我在这里提出了我的解决方案:
comboViewer1.getControl().addListener(SWT.MouseEnter, new Listener(){
@Override
public void handleEvent(Event event) {
if (comboViewer1.getComparator() == null){
comboViewer1.setComparator(new ViewerComp(transientModelThing.getComRef()));
}
}
});
我现在使用了 SWT.MouseEnter
事件。这当然不完全是我想要的,但已经足够接近了。
@greg-449 感谢您的输入!
关于java - 打开时调用 JFace ComboViewer setComparator(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19197176/
我创建了一个 ComboViewer final ComboViewer comboViewer = new ComboViewer(shlFreeViews, SWT.NONE);
如果组合框中的值发生更改,如何在组合查看器中触发事件?并非每个选择都会触发(addSelectionChangedListener)。我只想触发一个事件,仅当当前选择不同的值时才触发,而不是相同的值。
我有兴趣用对象列表填充 ComboViewer。我知道 JFace 有一些很好的功能来支持这一点,但是如果我想让 ComboViewer 中的第一个条目类似于 或者其他一些没有关联对象的虚拟条目?有没
我在我的插件中使用 JFace ComboViewer。作为一项便利功能,我想通过开始键入来更改当前选择。为此,我向底层组合元素添加了一个 KeyListener 我一开始输入就得到一个事件,但不幸的
在我的应用程序中,我需要两个组合框,第二个组合框的内容取决于第一个组合的当前选择。我应该为此使用 JFace ComboViewer 吗?还是直接用combo? 如果我使用 JFace ComboVi
JFace 实体和它们包装的 SWT 控件之间有什么区别? ComboViewer -> Combo/CCommbo TableViewer -> Table ListViewer -> List 等
我正在加载我的 ComboViewer有一千多个元素。 有些元素比底层的宽度长 combo . 我想在条目上而不是在 combo 上添加工具提示. 我想要这样一种方式,当列表下拉并且用户将鼠标指针放在
我有一个组合,其中包含选择列表中的字符串列表。如果用户下拉字符串列表,某些前景色将为黑色(标准),而其他定义的字符串应为前景色绿色或红色。我该如何渲染才能达到这个目的?我认为必须用 ComboView
我遇到了 SWT 问题。我想推迟 ViewerComparator 类的创建,直到用户真正想要从 ComboViewer 中选择一个项目。在我的用例中,比较器是一个非常复杂的野兽,使用大量资源。用户通
我有 Comboviewer 对象,我正在为其添加一个列表,其中包含两个值,例如 Type1 和 Type2。 但在显示时显示为:[Type1, Type2]而不是 : Type1 然后在这下面 类型
我想为 ComboViewer 使用 JFace 数据绑定(bind),但我不知道如何正确执行此操作。 这是我目前的进展: CCombo c= new CCombo(grpCpu, SWT.B
我是一名优秀的程序员,十分优秀!