2016-10-11 3 views

答えて

0

一般的な方法は、対応するDataLayerで操作し、行の高さを変更することです。 IDataProviderを変更することは、通常、データの表示方法ではなく、データの提供を担当するIDataProviderの慣行ではありません。したがって、次の例は、列ヘッダーレイヤの可視性を切り替える方法の例です(hideHeaderが現在の状態を格納するフラグであるとします)。私は列ヘッダDataLayer

を知られていない場合でも、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) { 
       columnHeaderDataLayer.setDefaultRowHeight(0); 
      } else { 
       columnHeaderDataLayer.setDefaultRowHeight(20); 
      } 
      natTable.refresh(false); 
     } 
    }); 

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()に適用されます。

関連する問題