Как создать всплывающее окно TableViewer в SWT?

Я новичок в Java и в SWT.

Я создал TableViewer для отображения данных таблиц.

class myTable : TableViewer

Я хочу, когда я нажимаю кнопку, чтобы открыть диалоговое окно myTable (например, всплывающее окно) и выбрать любой элемент из TableViewer.

В диалоге должны быть две кнопки «ОК» и «Отмена».

Вы знаете, как это сделать в java? Я имею в виду открыть диалог с TableViewer

Есть ли стандартный виджет для этого?

какой компонент мне нужно использовать?

У вас есть пример?


person user1365697    schedule 02.01.2014    source источник
comment
Если вам нужен чистый SWT, вы можете использовать только Table. TableViewer — это JFace. Итак, вы создаете SWT-приложение, подключаемый модуль Eclipse или RCP?   -  person greg-449    schedule 02.01.2014
comment
Eclipse rcp может быть jface или swt   -  person user1365697    schedule 02.01.2014
comment
У меня есть TableViewer с JFace, я просто хочу открыть его как ежедневный журнал или всплывающее окно   -  person user1365697    schedule 02.01.2014


Ответы (1)


Простейшим диалогом будет использование 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
person greg-449    schedule 02.01.2014
comment
Откроется ли в диалоговом окне новый экран, например всплывающее окно? - person user1365697; 02.01.2014
comment
Как добавить столбец и строку в эту таблицу? - person Jeevan; 30.03.2017
comment
@Jeevan Если у вас есть вопрос, задайте вопрос. Или прочтите учебник, например этот. - person greg-449; 30.03.2017
comment
Спасибо за ссылку. @ Грег-449 - person Jeevan; 29.06.2017