将按钮插入JFace表

时间:2011-11-14 12:03:18

标签: swt jface

如何将SWT Button控件插入JFace TableViewer?

2 个答案:

答案 0 :(得分:12)

给出的答案是一个很好的方法,可以在表格内外使用自定义绘图来实现自己的按钮。但是,您可以将SWT控件放在JFace Tables中。

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);
}

答案 1 :(得分:2)

你做不到。更一般地说,您不能在SWT中的表和树中插入任何小部件,因为并非所有平台都支持它。你可以做的是

  1. 在正常和点击状态下获取按钮的两个屏幕截图;

  2. 将正常的屏幕截图放在表格中作为图像;

  3. 处理对TableItem的点击。

  4. 以下是复选框的示例:http://tom-eclipse-dev.blogspot.com/2007/01/tableviewers-and-nativelooking.html