如何将SWT Button控件插入JFace TableViewer?
答案 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中的表和树中插入任何小部件,因为并非所有平台都支持它。你可以做的是
在正常和点击状态下获取按钮的两个屏幕截图;
将正常的屏幕截图放在表格中作为图像;
处理对TableItem的点击。
以下是复选框的示例:http://tom-eclipse-dev.blogspot.com/2007/01/tableviewers-and-nativelooking.html