Вставка кнопки в таблицу JFace

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

2 ответа

Решение

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

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

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

  3. Обрабатывать нажатия на TableItem.

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

Полученный ответ - хороший способ реализовать свои собственные кнопки с пользовательскими рисунками, внутри или снаружи таблицы. Однако вы можете поместить элементы управления 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);
}
Другие вопросы по тегам