SWT.READ_ONLY 时如何重置 Combo

Chr*_*ton 4 java swt eclipse-plugin

我正在使用该org.eclipse.swt.widgets.Combo课程,并且正在执行以下操作

Combo myCombo = new Combo(container, SWT.READ_ONLY);
myCombo.add("1");
myCombo.add("2");

//later on
myCombo.setText(""); //will not work because READ_ONLY
Run Code Online (Sandbox Code Playgroud)

用户将选择组合的一个元素,我提供一个重置按钮,我希望将值设置为 null。但是,根据 javadoc,当接收者为 时,setText 方法将被忽略READ_ONLY。我喜欢Combo只读,因为我只希望用户选择我提供的内容。但如果可能的话,我想将值设置回 null 或“”。我可以使用只读接收器来执行此操作吗?或者这样做的另一种好方法是什么?

谢谢!

Rüd*_*ann 5

使用combo.deselectAll()重置选择。

或者你可以使用:

combo.deselect(combo.getSelectionIndex());
Run Code Online (Sandbox Code Playgroud)

在这两种情况下getSelectionIndex()下都会返回 -1。

这些方法看起来好像 Combo 支持多项选择,但实际上并不支持。无论它们看起来多么奇怪,它们都会重置选择。