在使用tableEditor时,想在每行的后面加上button(编辑按钮),但是发现展示的时候始终不好--(始终漂浮在第一列的上面,需要改变下列的宽度才可以正确的显示),但是当改变窗口大小时又回复到最开始的界面。
代码:
public class InitUserItem implements Runnable {
private Table table; private TableItem item; private Vector datas; private int style; public InitUserItem(Table table, Vector datas, int style) {
this.table = table;
this.datas = datas;
this.style = style; } public void run() {
table.getDisplay().asyncExec(new Runnable() {
public void run() {
for (Iterator iter = datas.iterator(); iter.hasNext();) {
UserItemVO element = (UserItemVO) iter.next();
item = new TableItem(table, style);
item.setData(element);
item.setText(new String[] { element.getId(), element.getName(), element.getDept(),element.getPhone()}); TableEditor editor = new TableEditor(table);
Button edit_button = new Button(table,SWT.NONE);
button_edit.setText("编辑");
editor.setEditor(edit_button,item,4);
}
}
}); }}不管放在哪一列都一样,始终存在这样的问题,不知道各位遇到个这样的问题没?
代码:
public class InitUserItem implements Runnable {
private Table table; private TableItem item; private Vector datas; private int style; public InitUserItem(Table table, Vector datas, int style) {
this.table = table;
this.datas = datas;
this.style = style; } public void run() {
table.getDisplay().asyncExec(new Runnable() {
public void run() {
for (Iterator iter = datas.iterator(); iter.hasNext();) {
UserItemVO element = (UserItemVO) iter.next();
item = new TableItem(table, style);
item.setData(element);
item.setText(new String[] { element.getId(), element.getName(), element.getDept(),element.getPhone()}); TableEditor editor = new TableEditor(table);
Button edit_button = new Button(table,SWT.NONE);
button_edit.setText("编辑");
editor.setEditor(edit_button,item,4);
}
}
}); }}不管放在哪一列都一样,始终存在这样的问题,不知道各位遇到个这样的问题没?
final Table table = tv.getTable();
table.addListener(SWT.MeasureItem, new Listener() { //向表格增加一个SWT.MeasureItem监听器,每当需要单元内容的大小的时候就会被调用。
public void handleEvent(Event event) {
event.width = table.getGridLineWidth(); //设置宽度
event.height = (int) Math.floor(event.gc.getFontMetrics().getHeight() * 1.5); //设置高度为字体高度的1.5倍
}});