SWT-ComboBoxCellEditor / значение по умолчанию
Я хотел бы, чтобы мой ComboBoxCellEditor мог иметь 3 возможных выбора. Сейчас у него есть только " да " или "нет". Я бы хотел, чтобы у него было и да, и нет, и то, и другое.
Также значения выбора combobox не отображаются в таблице, если не щелкнуть ячейку. Трудно сказать, есть ли в ячейке таблицы выбор, если они не щелкают в пустой ячейке. Я бы хотел, чтобы она хотя бы показывала стрелку вниз.
Я читал кое-где, что единственный способ обойти это-это чтобы установить значение по умолчанию.
-
Я не знаю, как добавить 3-е значение. Я добавлю свой код, пытаясь добавить 3-е значение
-
Как заставить combobox появиться в таблице, не щелкнув сначала по ячейке?
.
public class OptionEditingSupport extends EditingSupport {
private ComboBoxCellEditor cellEditor;
public OptionEditingSupport(ColumnViewer viewer) {
super(viewer);
cellEditor = new ComboBoxCellEditor(((TableViewer)viewer).getTable(), new String[]{"Yes", "No", "Both"}, SWT.READ_ONLY);
}
protected CellEditor getCellEditor(Object element) {
return cellEditor;
}
protected boolean canEdit(Object element) {
return true;
}
protected Object getValue(Object element) {
return 0;
}
protected void setValue(Object element, Object value)
{
if((element instanceof AplotDatasetData) && (value instanceof Integer)) {
Integer choice = (Integer)value;
String option = (choice == 0? "Yes":"No":"Both"); **<- Error Here
((AplotDatasetData)element).setMarkupValue(option);
getViewer().update(element, null);
}
}
}
2 ответа:
x ? y : z
Является тернарным оператором, который внутренне делает:
Таким образом, вы можете использовать его только с тремя компонентами. Используйте anif(x) y; else z;
if
else if
else
вместо этого:Integer choice = (Integer)value; String option = ""; if(choice == 0) option = "Yes"; else if(choice == 1) option = "No"; else option = "Both";