4
我正在使用JFace TableViewer和TableColumnLayout。我怎樣才能設置列的最小寬度,或者至少防止它被調整爲0的寬度?防止將JFace TableColumn調整爲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);
}});
但似乎比較難看的,是有一個更清潔的方式做到這一點?
Helmuth M.,當我這樣做的時候,以及1)當我非常緩慢地移動(左)第3列的線/柵格(第2列的右邊柵格/線)時,那麼第2列是不可見的了。因此,列2的寬度不保持爲5.儘管我可以再次移動列3的行並使列2可見。但爲什麼寬度沒有維持到第2列的5?任何想法我可能做錯了什麼? 2)當我重複這種行爲三次時,即我將2,3和4列逐一移動到第一列,並使其不可見。我無法再檢索它。 – user523956 2014-11-07 15:11:43