我在一个组合中有一个部分和 formtoolkit
。当我在搜索框(文本
字段)中输入一些文本时,它应该根据用户输入进行过滤并显示下面的结果。我在过滤数据时遇到一个问题。当用户在文本字段中输入文本时,如何刷新复合中的数据。
我想要一个与其工作方式相同的解决方案
Preferences -> compiler -> Errors/Warnings?
示例:
如果我在搜索框中输入“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/