Не удается получить доступ к данным столбца Jtable после установки невидимым - PullRequest
2 голосов
/ 07 июня 2011

После установки столбца JTable в невидимый, я не могу получить ссылку на компонент.

Component cellEditor;
String name;
String value;
// loop row then column
for(int j=0 ; j<tolCol ; j++){
    /* get cell name in JTable */
    System.out.println(j + " " + ((JTable)comp).getModel().getValueAt(0, j));
    tce = ((JTable)comp).getCellEditor(0, j); // <-- ArrayIndexOutOfBounds
}

Когда я использую System.out.println (j + "" + ((JTable) comp) .getModel (). GetValueAt (0, j)); мне удается распечатать все значение. Что-нибудь еще, что мне нужно сделать, чтобы получить ссылку на компонент?

Ответы [ 2 ]

1 голос
/ 07 июня 2011

Почему вы думаете, что вам нужен редактор ячеек скрытого столбца.Это звучит как плохой дизайн.

Даже ваш код для доступа к данным не является случайным, потому что модель и представление могут отличаться.Порядок столбцов в модели никогда не меняется.Предположим, что ваша табличная модель может содержать следующие данные в 3 столбцах: «String», «Integer», «Date».Теперь давайте предположим, что пользователь переупорядочивает таблицу, перетаскивая столбцы «Дата» в первый столбец таблицы.

Теперь при доступе к table.getModel (). GetValueAt (row, 0) вы получите «String "value.

При доступе к table.getCellEditor (row, 0) вы получите редактор для объекта" Date ".

Для доступа к редактору по умолчанию для данного типа класса выможно сделать:

Class clazz = table.getModel().getColumnClass(0);
TableCellEditor tce = table.getDefaultEditor( clazz );
1 голос
/ 07 июня 2011

После установки столбца JTable в невидимая

Если у вас есть удаленный столбец, чтобы сделать его невидимым , тогда вы получите ArrayIndexOutOfBoundException. Но вы можете получить доступ ((JTable)comp).getModel().getValueAt(0, j)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...