我正在使用Eclipse AWT框架,我有一个组合框。
我已将组合框中可见的项目数量设置为0,因此单击下拉列表不会显示任何内容(即使已填充该框)。
我的框上有一个AutoCompleteField,因此输入组合框的任何人都可以看到Eclipse风格的AutoCompleteField。这非常有效。
但是,我希望能够触发AutoCompleteField在某些情况下出现,而不仅仅是在用户开始输入时。例如,当用户点击下拉三角形时,我希望它出现,所以它就像Eclipse样式的AutoCompleteField而不是正常的下拉列表。
不幸的是,AutoCompleteField没有公开任何有用的方法,我几乎不知道它是如何工作的。
我怎样才能让它随心所欲地出现?
答案 0 :(得分:1)
我认为你的意思是SWT / JFace AutoCompleteField
(AWT是旧的Java GUI)。
AutoCompleteField
仅用于最简单地使用自动完成,因为您需要使用较低级别的类更复杂。
这是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);
ContentProposalAdapter
可以根据需要使用openProposalPopup()
方法打开辅助 - 这是protected
方法,因此需要使用从ContentProposalAdapter
派生的类使用它。
ContentProposalAdapter还具有用于激活辅助的KeyStroke参数和一组自动激活字符。