我使用的是JFace TableViewer和TableColumnLayout。如何设置列最小宽度,或者至少阻止它调整为0宽度?
TableColumnLayout layout = new TableColumnLayout();
parent.setLayout(layout);
TableViewer viewer = new TableViewer(parent, SWT.FULL_SELECTION | SWT.BORDER);
//adding a few columns like this
TableColumn col = new TableColumn(viewer.getTable(), SWT.LEFT);
int minWidth = 100;
layout.setColumnData(col, new ColumnWeightData(10, minWidth, true));
col.setMoveable(true);
...
看来ColumnWeightData的minWidth参数不受尊重,我仍然可以将列的大小调整为0宽。
使用类似的东西:
col.addControlListener(new ControlListener(){
@Override
public void controlMoved(ControlEvent e) {
}
@Override
public void controlResized(ControlEvent e) {
if(col.getWidth()<5)
col.setWidth(5);
}});
但这看起来相当难看,是否有更清洁的方法呢?
答案 0 :(得分:6)
Table
没有内置支持。所以Resize
听众 - 就像你在问题中所表明的那样 - 是唯一的方式。