java - 如何在过滤文本字段时刷新组合?

标签 java eclipse-plugin swt eclipse-rcp jface

我在一个组合中有一个部分和 formtoolkit。当我在搜索框(文本字段)中输入一些文本时,它应该根据用户输入进行过滤并显示下面的结果。我在过滤数据时遇到一个问题。当用户在文本字段中输入文本时,如何刷新复合中的数据。

我想要一个与其工作方式相同的解决方案

Preferences -> compiler -> Errors/Warnings?

示例:

enter image description here

如果我在搜索框中输入“null”,它将显示下面所有相关的“null”值。

如何实现过滤/刷新复合数据的实现?

最佳答案

您引用的首选项页面使用包含所有要过滤的控件的Composite 来执行此操作。 Composite 使用 GridLayout 布局。

每个控件都有一个 GridData 布局数据。要设置控件可见或不可见,它使用:

control.setVisible(visible);
((GridData)control.getLayoutData()).exclude = !visible;

完成后,它会调用:

composite.layout(true, true);

完全重做Composite的布局。

大部分代码位于org.eclipse.jdt.internal.ui.preference.OptionsConfigurationBlock

要进行过滤,您需要为过滤器创建一个 Text 字段,并添加一个 ModifyListener 来监听文本中的更改。

每次文本更改时,您都会将每个控件的文本与过滤器相匹配,并将控件设置为可见/不可见,如上所述。在过滤结束时,您执行 layout 调用。

关于java - 如何在过滤文本字段时刷新组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37670953/

相关文章:

java - 是否可以使用 PDO 进行 JDBC 连接?

java - 将 JSON 数据从另一个类传递到我的 ImageAdapter 以提供我的图像路径

java - 如何在 TabFolder 中嵌入 SWT TableViewer?

java - Java 中的 equals 方法不起作用

java - showDocument() 在使用 Java 7/Java 6u27 的 IE8 中不显示新窗口

eclipse - Glassfish 3.1.2 和 Eclipse Indigo 插件

java - 将插件项目导出到产品时出现 "Processing inclusion from feature"错误

java - 在Eclipse中Java开发的上下文中,术语 'headless'是什么意思?

java - 获取 SWT TabFolder 中的 Activity 选项卡

java - SWT 小程序 : swt-win32-3650. dll 已加载到另一个类加载器中