2016-10-11 2 views

답변

0

일반적으로 해당 DataLayer에서 작동하고 행 높이를 수정합니다. IDataProvider을 수정하는 것은 대개 좋은 방법이 아닙니다. IDataProvider이 데이터를 제공하는 것이지 데이터를 렌더링하는 방법이 아니기 때문입니다. 따라서 다음은 열 머리글 레이어의 가시성을 전환하는 방법의 예입니다 (hideHeader은 현재 상태를 저장하는 플래그 임). 열 머리글 DataLayer를 알 수없는 경우

Button hideButton = new Button(buttonPanel, SWT.PUSH); 
    hideButton.setText("Hide/Show"); 
    hideButton.addSelectionListener(new SelectionAdapter() { 
     @Override 
     public void widgetSelected(SelectionEvent e) { 
      this.hideHeader = !this.hideHeader; 
      if (this.hideHeader) { 
       columnHeaderDataLayer.setDefaultRowHeight(0); 
      } else { 
       columnHeaderDataLayer.setDefaultRowHeight(20); 
      } 
      natTable.refresh(false); 
     } 
    }); 

는 난 천천히 0

에 높이를 줄여 전환의 일종을 구현하는 방법을 사용하는 사용자가 다른 방법이 RowResizeCommand을 사용할 수 있습니다 알고

Button hideButton = new Button(buttonPanel, SWT.PUSH); 
    hideButton.setText("Hide/Show"); 
    hideButton.addSelectionListener(new SelectionAdapter() { 
     @Override 
     public void widgetSelected(SelectionEvent e) { 
      this.hideHeader = !this.hideHeader; 
      if (this.hideHeader) { 
       natTable.doCommand(new RowResizeCommand(natTable, 0, 0)); 
      } else { 
       natTable.doCommand(new RowResizeCommand(natTable, 0, 20)); 
      } 
     } 
    }); 
0

내 RowHeaderDataProvider에서 getColumnCount() 메소드의 로직을 변경하여 숨겨진 것으로 플래그되었을 때 0을 리턴하거나 숨겨진 것으로 플래그되었을 때 1을 리턴함으로써이를 해결했습니다. 동일한 ColumnHeaderDataProvider getRowCount() 적용됩니다.

관련 문제