0

3 つの列を持つ swt テーブルを作成しました。最初の列はチェック列です。私はこのコードを使用しました:

  table = new Table(container, SWT.CHECK | SWT.BORDER | SWT.V_SCROLL
            | SWT.H_SCROLL|SWT.MULTI);

1 つの項目を選択すると、3 番目の列にテキストが作成されます。コードは次のとおりです。

listener = new Listener() {
 @Override public void handleEvent(Event event) {
 if (event.detail == SWT.CHECK) {
 final TableItem current = (TableItem) event.item; 
if (current.getChecked()) { 
final TableEditor editor = new TableEditor(table); 
text = new Text(table, SWT.NONE);
 editor.grabHorizontal = true;
}

3列目で選択した項目と一致するセルの値を取得したいのですが、.で取得できませんでしたselectedItem.getText(2)。何か助けてください。

4

1 に答える 1

1

このコードサンプルを試してください。選択した列3のテキストが出力されますTableItem

public static void main(String[] args)
{
    Display display = Display.getDefault();
    final Shell shell = new Shell(display);
    shell.setLayout(new GridLayout(1, true));

    Table table = new Table(shell, SWT.CHECK | SWT.MULTI);
    table.setHeaderVisible(true);
    table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    for(int i = 0; i < 4; i++)
    {
        TableColumn column = new TableColumn(table, SWT.NONE);
        column.setText("Column " + i + "           ");
        column.pack();
    }

    for(int i = 0; i < 10; i++)
    {
        TableItem newItem = new TableItem(table, SWT.NONE);
        newItem.setText(1, "ITEM " + i + " TEXT1");
        newItem.setText(2, "ITEM " + i + " TEXT2");
        newItem.setText(3, "ITEM " + i + " TEXT3");
    }

    table.addListener(SWT.Selection, new Listener()
    {
        @Override
        public void handleEvent(Event event)
        {
            if(event.detail == SWT.CHECK)
            {
                TableItem current = (TableItem)event.item;

                if(current.getChecked())
                {
                    System.out.println(current.getText(2));
                }
            }
        }
    });

    shell.pack();
    shell.open();
    while (!shell.isDisposed())
    {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

これはどのように見えるかです:

ここに画像の説明を入力してください

于 2012-12-01T17:20:46.617 に答える