如何在SWT中构建TableViewer的弹出窗口?

时间:2014-01-02 13:19:54

标签: java eclipse swt jface tableviewer

我是Java和SWT的新手。

我创建了TableViewer来显示表格数据。

class myTable : TableViewer

我想按下按钮打开myTable对话框(如弹出窗口)并从TableViewer中选择任何项目。

对话框应该有两个按钮“OK”并取消。

你知道如何在java中这样做吗?我的意思是打开TableViewer

对话框

这是否有标准小工具?

我需要使用哪个组件?

你有什么例子吗?

1 个答案:

答案 0 :(得分:2)

最简单的对话框是使用org.eclipse.jface.dialog.Dialog的对话框 - 如下所示:

import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;

public class TestDialog extends Dialog
{
  public TestDialog(final Shell parentShell)
  {
    super(parentShell);
  }


  @Override
  protected Control createDialogArea(final Composite parent)
  {
    final Composite body = (Composite)super.createDialogArea(parent);

    final TableViewer viewer = new TableViewer(body, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);

    viewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    // TODO: Set TableViewer content and label providers
    // TODO: Set TableViewer input

    return body;
  }
}

在您的代码中,您可以:

TestDialog dialog = new TestDialog(shell);

dialog.open();   // Displays the dialog in a popup window