单击打开AutoCompleteField

时间:2015-06-05 20:57:37

标签: java eclipse autocomplete awt

我正在使用Eclipse AWT框架,我有一个组合框。

我已将组合框中可见的项目数量设置为0,因此单击下拉列表不会显示任何内容(即使已填充该框)。

我的框上有一个AutoCompleteField,因此输入组合框的任何人都可以看到Eclipse风格的AutoCompleteField。这非常有效。

但是,我希望能够触发AutoCompleteField在某些情况下出现,而不仅仅是在用户开始输入时。例如,当用户点击下拉三角形时,我希望它出现,所以它就像Eclipse样式的AutoCompleteField而不是正常的下拉列表。

不幸的是,AutoCompleteField没有公开任何有用的方法,我几乎不知道它是如何工作的。

我怎样才能让它随心所欲地出现?

1 个答案:

答案 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参数和一组自动激活字符。