Вставка кнопки в таблицу JFace - PullRequest
2 голосов
/ 14 ноября 2011

Как вставить элемент управления SWT Button в JFace TableViewer?

Ответы [ 2 ]

12 голосов
/ 23 февраля 2012

Полученный ответ - хороший способ реализовать свои собственные кнопки с пользовательскими рисунками внутри или снаружи таблицы.Однако вы можете поместить элементы управления SWT в таблицы JFace.

http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/PlacearbitrarycontrolsinaSWTtable.htm

Решение для построения таблицы со столбцами, содержащими поля со списками, текстовые поля и кнопки, предоставляемые ссылкой:

Table table = new Table(shell, SWT.BORDER | SWT.MULTI);
table.setLinesVisible(true);
for (int i = 0; i < 3; i++) {
  TableColumn column = new TableColumn(table, SWT.NONE);
  column.setWidth(100);
}
for (int i = 0; i < 12; i++) {
  new TableItem(table, SWT.NONE);
}
TableItem[] items = table.getItems();
for (int i = 0; i < items.length; i++) {
  TableEditor editor = new TableEditor(table);
  CCombo combo = new CCombo(table, SWT.NONE);
  editor.grabHorizontal = true;
  editor.setEditor(combo, items[i], 0);
  editor = new TableEditor(table);
  Text text = new Text(table, SWT.NONE);
  editor.grabHorizontal = true;
  editor.setEditor(text, items[i], 1);
  editor = new TableEditor(table);
  Button button = new Button(table, SWT.CHECK);
  button.pack();
  editor.minimumWidth = button.getSize().x;
  editor.horizontalAlignment = SWT.LEFT;
  editor.setEditor(button, items[i], 2);
}
2 голосов
/ 14 ноября 2011

Вы не можете. В целом, вы не можете вставлять какие-либо виджеты в таблицы и деревья в SWT, потому что не все платформы поддерживают его. Вместо этого вы можете

  1. Сделайте два снимка экрана кнопки в нормальном и щелчковом состояниях;

  2. Поместите обычный скриншот в таблицу как изображение;

  3. Обрабатывать щелчки на элементе TableItem.

Вот пример для флажков: http://tom -eclipse-dev.blogspot.com / 2007/01 / tableviewers-and-nativelooking.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...