2

ComboBoxCellEditorで3つの選択肢を選択できるようにしたいと思います。現在、「はい」または「いいえ」しかありません。「はい」、「いいえ」、「両方」にしたいのですが。

また、セルがクリックされない限り、コンボボックスの選択値はテーブルに表示されません。空のセルをクリックしない限り、テーブルセルに選択が可能かどうかを判断するのは困難です。少なくとも下向き矢印を表示したいと思います。
これを回避する唯一の方法はデフォルト値を設定することです。

  1. 3番目の値を追加する方法がわかりません。3番目の値を追加しようとしてコードを追加します

  2. セルを最初にクリックしなくても、コンボボックスをテーブルに表示するにはどうすればよいですか?

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);
        }
    }
}
4

2 に答える 2

1

条件演算子

x ? y : z

は三項演算子であり、内部的に次のことを行います。

if(x)
    y;
else
    z;

したがって、3つのコンポーネントでのみ使用できます。if else if else代わりに使用してください:

Integer choice = (Integer)value;
String option = "";

if(choice == 0)
    option = "Yes";
else if(choice == 1)
    option = "No";
else
    option = "Both";
于 2012-09-10T17:56:05.293 に答える
0

TableEditorテーブルセルの上に任意のウィジェットを表示するために使用できます。Comboboxを表示する際の問題を解決して、その行と列に可能な選択があることをユーザーに通知する必要があります。

3つの選択についてのあなたの質問を理解できません。

于 2012-09-11T01:41:51.790 に答える