Это мой класс ClanModel. Таблица основана на карте дерева.Проблемы с JTable и JModel
public class ClanModel extends AbstractTableModel{
private Map<Integer, ClanMember> clanMembers;
private final String[] columnNames = {"Name", "Rank"};
ClanModel(Map<Integer, ClanMember> clanMembers){
this.clanMembers = clanMembers;
}
@Override
public int getRowCount() {
return clanMembers.size();
}
@Override
public int getColumnCount() {
return 2;
}
@Override
public String getColumnName(int column){
return columnNames[column];
}
@Override
public Object getValueAt(int row, int column) {
if(column == 0) return clanMembers.get(row).getName();
if(column == 1) return clanMembers.get(row).getRank();
return 1;
}
@Override
public void setValueAt(Object value, int row, int column) {
if(column == 0) clanMembers.get(row).setName((String) value);
if(column == 1) clanMembers.get(row).setRank((Rank) value);
fireTableCellUpdated(row, column);
}
}
Это в ГИП конструктор
clanTable = new JTable(new ClanModel(clanMembers));
panel.add(clanTable);
Карта заполняется на кнопку печати, которая работает. Тем не менее, таблица не появляется перед нажатием кнопки или после. Я также получаю сообщение об ошибке при каждом изменении размера окна gui.
У меня есть приблизительное представление о том, что мне нужно сделать, чтобы исправить это, но оно не работает.
Я не вижу 'invokeLater()' или 'setVisible()'. Пожалуйста, отредактируйте свой вопрос, чтобы включить [sscce] (http://sscce.org/), который показывает проблему, которую вы описываете. – trashgod
Какая ошибка возникает при изменении размера графического интерфейса? Кроме того, есть 'Container', в котором' JTable' добавлен где-то в вашем 'Window'? –
Вероятно, он не ошибся; необходимость изменить размер кадра для получения неявного 'repaint()', вероятно, вызвана ошибочным 'setVisible()'. – trashgod