2016-05-12 3 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)?

ответ

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; 

     } 

Тереза ​​нет Api спецификации в DefaultTableModel для удаления column, но вы можете customize ваш 2d массив и удалить столбец вам нужно. а затем передать обработанный массив в конструктор DefaultTableModel. Однако вам все равно нужно изменить имена столбцов.

Смежные вопросы