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)この動作を3回繰り返すと、2,3,4列目が1列目に1つずつ移動し、目に見えなくなります。私は再びそれを取得することはできません。 – user523956