Im используя JTable, загружая на него разные данные в зависимости от нажатой кнопки.JTable с 2 различными данными
Проблема: когда загружается одна из данных, если я пытаюсь загрузить другую и передаю курсор мыши над заголовком или ячейкой, он обновляет заголовок/ячейку данными с первого ввода, если есть данные по выбранному заголовку/ячейке.
Любые идеи о том, как их решить? Это код, который использует.
private static void setCompromissosTable(Object[][] data, Object[] header){
try{
compromissosTable.removeAll();
} catch(Exception e){
e.printStackTrace();
}
compromissosTable = new JTable(data, header);
compromissosTable.setRowSelectionAllowed(true);
// Make the entire row selectable, but not editable
int columnMax = compromissosTable.getColumnCount();
for(int column = 0; column < columnMax; column++){
Class<?> col_class = compromissosTable.getColumnClass(column);
compromissosTable.setDefaultEditor(col_class, null);
}
scrollPane = new JScrollPane(compromissosTable);
pane.add(scrollPane);
scrollPane.setBounds(btnAddCompromisso.getX(),
btnAddCompromisso.getHeight() + btnAddCompromisso.getY() + 5
, frame1.getWidth() - 20
, frame1.getHeight() - 20);
compromissosTable.revalidate();
compromissosTable.repaint();
compromissosTable.addMouseListener(new MouseAdapter() {}
//Change mouse behavior.
);
}
Моя первая мысль не создавать или измените сам 'JTable', но просто отключите модели. – MadProgrammer
Вы, похоже, используете макеты' null', что, вероятно, означает, что на основе вашего примера вы просто «перекрываете» новую таблицу поверх старой, именно поэтому вы, вероятно, получаете сбои в живописи. Вместо этого избегайте макетов 'null', не создавайте новый' JTable' каждый раз, а просто обновляйте существующую 'JTable' с помощью новой модели. – MadProgrammer