单击打开 AutoCompleteField
Open AutoCompleteField on click
我正在使用 Eclipse AWT 框架,并且我有一个组合框。
我已将组合框中项目的可见数量设置为 0,因此单击下拉列表不会显示任何内容(即使该框已填充)。
我在框上有一个 AutoCompleteField,因此任何在组合框中键入的人都会看到 Eclipse 样式的 AutoCompleteField。这非常有效。
但是,我希望能够触发 AutoCompleteField 在某些情况下出现,而不仅仅是在用户开始键入时出现。例如,我希望它在用户单击下拉三角形时出现,所以它就像 Eclipse 样式的 AutoCompleteField 出现而不是正常的下拉菜单。
不幸的是,AutoCompleteField 没有公开有用的方法,我几乎不明白它是如何工作的。
如何让它随心所欲地出现?
我假设您指的是 SWT / JFace AutoCompleteField
(AWT 是旧的 Java GUI)。
AutoCompleteField
仅适用于最简单的自动完成使用,对于更复杂的情况,您需要使用较低级别的 classes.
这是AutoCompleteField
设置的:
Control control = your control
IControlContentAdapter controlContentAdapter = your control context adapter
String[] proposals = your proposals
SimpleContentProposalProvider proposalProvider = new SimpleContentProposalProvider(proposals);
proposalProvider.setFiltering(true);
ContentProposalAdapter adapter = new ContentProposalAdapter(control, controlContentAdapter, proposalProvider, null, null);
adapter.setPropagateKeys(true);
adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
可以使用openProposalPopup()
方法根据需要打开辅助的是ContentProposalAdapter
- 这是protected
方法所以需要使用class派生从 ContentProposalAdapter
开始使用它。
ContentProposalAdapter 还具有用于激活辅助的 KeyStroke 和一组自动激活字符的参数。
我正在使用 Eclipse AWT 框架,并且我有一个组合框。
我已将组合框中项目的可见数量设置为 0,因此单击下拉列表不会显示任何内容(即使该框已填充)。
我在框上有一个 AutoCompleteField,因此任何在组合框中键入的人都会看到 Eclipse 样式的 AutoCompleteField。这非常有效。
但是,我希望能够触发 AutoCompleteField 在某些情况下出现,而不仅仅是在用户开始键入时出现。例如,我希望它在用户单击下拉三角形时出现,所以它就像 Eclipse 样式的 AutoCompleteField 出现而不是正常的下拉菜单。
不幸的是,AutoCompleteField 没有公开有用的方法,我几乎不明白它是如何工作的。
如何让它随心所欲地出现?
我假设您指的是 SWT / JFace AutoCompleteField
(AWT 是旧的 Java GUI)。
AutoCompleteField
仅适用于最简单的自动完成使用,对于更复杂的情况,您需要使用较低级别的 classes.
这是AutoCompleteField
设置的:
Control control = your control
IControlContentAdapter controlContentAdapter = your control context adapter
String[] proposals = your proposals
SimpleContentProposalProvider proposalProvider = new SimpleContentProposalProvider(proposals);
proposalProvider.setFiltering(true);
ContentProposalAdapter adapter = new ContentProposalAdapter(control, controlContentAdapter, proposalProvider, null, null);
adapter.setPropagateKeys(true);
adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
可以使用openProposalPopup()
方法根据需要打开辅助的是ContentProposalAdapter
- 这是protected
方法所以需要使用class派生从 ContentProposalAdapter
开始使用它。
ContentProposalAdapter 还具有用于激活辅助的 KeyStroke 和一组自动激活字符的参数。