如何使用允许多个选择的复选框创建对话框

时间:2014-08-21 14:49:20

标签: java swt jface rcp

阅读此link后,我想创建一个对话框,我可以在其中选择多个以复选框形式显示的项目。 ElementListSelectionDialog未在对话框中显示任何元素。

final ElementListSelectionDialog dialog = new     ElementListSelectionDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell(), new LabelProvider());
dialog.setElements(new String[] { "1", "2", "3" });
dialog.setTitle("Numbers");
dialog.setMultipleSelection(true);
dialog.setInitialSelections(new String[] { "1", "2", "3" });
dialog.open();

使用上面的代码,我有时会得到对话框中的项目,但有两个问题:

  1. 我有时只得到它们
  2. 它不是复选框的形式。
  3. 如果您知道更好的方法,请告诉我。 我真的很感激任何帮助:)

1 个答案:

答案 0 :(得分:4)

ElementListSelectionDialog不支持复选框选择。

您可以使用org.eclipse.ui.dialogs.ListSelectionDialog

String [] elements = ...

ListSelectionDialog dialog = 
   new ListSelectionDialog(shell, elements, ArrayContentProvider.getInstance(),
            new LabelProvider(), "selection message");

dialog.setTitle("dialog title");

dialog.setInitialSelections(new Object []{....selections});

dialog.open();

Object [] result = dialog.getResult();

或者您始终可以使用CheckboxTableViewer编写自己的对话框。