2012-04-16 3 views
4

JFace TableViewer 및 TableColumnLayout을 사용하고 있습니다. 열의 최소 너비를 설정하거나 최소한 너비가 0으로 조정되지 않도록하려면 어떻게해야합니까? ColumnWeightData의 minWidth를 매개 변수가 영광하지 않은 것 같습니다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); 
... 

, 난 여전히 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

Helmuth M., 정확하게 이것을 할 때, 1) 정확히 열 (오른쪽 모눈/줄 1 열)의 열/격자를 매우 천천히 (왼쪽으로) 이동시킨 다음 열 2를 볼 수 없습니다. 더 이상. 따라서 열 2의 너비는 5로 유지되지 않습니다. 그러나 열 3의 행을 다시 이동하고 열 2를 볼 수는 있습니다. 그러나 너비가 열 2의 5로 유지되지 않는 이유는 무엇입니까? 내가 뭘 잘못하고 있을지 모르겠다. 2)이 동작을 세 번 반복하면 즉, 열 2,3 및 4를 첫 번째 열 -1로 하나씩 이동시켜 보이지 않게합니다. 나는 그것을 다시 찾을 수 없다. – user523956

답변

6

Table에는이 기능이 기본적으로 지원되지 않습니다. 따라서 질문에 표시된 것처럼 Resize 청취자가 유일한 방법입니다.

관련 문제