2016-05-12 9 views
2

オブジェクトの一部の列から表を作成する方法はありますか?これは望ましい出力です:Jtable一部の列を非表示にする

ID|Author|Messages 
---------------------------- 
2 |Alice | My first message 
5 |Alice | My second message 
6 |Bob | Hello 

これはオブジェクトです。

 private String[] columnNames 
      = {"ID","Author", "HideThis", "Messages"}; 

    private Object[][] data = { 
     {"2", "Alice", "Hide this", "My first message"}, 
     {"5", "Alice", "Hide this", "My second message"}, 
     {"6", "Bob", "Hide this", "Hello"} 
    }; 
    private DefaultTableModel model = new DefaultTableModel(data, columnNames); 

新しいデータオブジェクトを作成し、関連する列のみをコピーするか、columnSetHidden(2)と言う方法がありますか? DefaultTableModel

答えて

1
DefaultTableModel model = new DefaultTableModel(ProcessArray(data,1),columnNames); 

public Object[][] ProcessArray(Object[][] arr,int colindex) { 

      List points = Arrays.asList(arr); 
      for (int i = 0; i < arr.length; i++) { 
       for (int j = 0; j < arr[i].length; j++) { 
        points.remove(arr[i][colindex]); 
       } 
      } 
      Object[][] returnData = (Object[][]) points.toArray(); 
      return returnData; 

     } 

theresの無いAPI仕様はcolumn削除していますが、2次元配列をcustomizeし、必要な列を削除することができます。処理された配列をDefaultTableModelのコンストラクタに渡します。ただし、列名を変更する必要があります。

関連する問題