2016-05-12 11 views
2

Wie erstellt man aus einigen, aber nicht allen Spalten in einem Objekt eine Tabelle? Dies ist die gewünschte Ausgabe:Jtable Einige Spalten ausblenden

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

Dies ist das Objekt.

 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); 

Muss ich ein neues Datenobjekt und kopieren Sie nur relevante Spalten erstellen oder ist es eine Möglichkeit, columnSetHidden zu sagen, (2)?

Antwort

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 keine Api-Spezifikation in DefaultTableModel entfernen ein column, aber Sie können Ihre 2D-Array customize und entfernen Sie die Spalte, die Sie benötigen. Übergeben Sie dann das verarbeitete Array an den Konstruktor DefaultTableModel. Sie müssen die Spaltennamen jedoch immer noch ändern.

Verwandte Themen