Я пытаюсь ввести строку в уже созданную таблицу, я нашел решение на этом веб-сайте, но это не работает для меня. Я извлек «JTable раздел кода» и создал новый класс, это следующий:Добавить данные в код раздела JTable, вопрос кастинга
public static void main(String[] args) {
String[] columnToken = {"No. consecutivo", "Token", "Lexema", "No. de linea"};
String[] columnError = {"No. consecutivo", "Error", "No. de linea"};
Object[][] datac1= {};
Object[][] datac2= {};
JTable tabTokens = new JTable(datac1, columnToken);
JTable tabError = new JTable(datac2, columnError);
JFrame frameTokens = new JFrame("JTable Tokens Display");
JFrame frameError = new JFrame("JTable Errors Display");
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
JScrollPane tokenTabContainer = new JScrollPane(tabTokens);
JScrollPane errorTabContainer = new JScrollPane(tabError);
panel.add(tokenTabContainer, BorderLayout.CENTER);
frameTokens.getContentPane().add(panel);
panel.add(errorTabContainer, BorderLayout.CENTER);
frameError.getContentPane().add(panel);
for(int i=0; i<4; i++) {
DefaultTableModel token100 = (DefaultTableModel) tabTokens.getModel();
token100.addRow(new Object[]{"Hola", 100, 196, "adios"});
DefaultTableModel token101 = (DefaultTableModel) tabTokens.getModel();
token101.addRow(new Object[]{"Hola", 100, 196, "adios"});
DefaultTableModel token102 = (DefaultTableModel) tabTokens.getModel();
token102.addRow(new Object[]{"Hola", 100, 196, "adios"});
}
frameTokens.pack();
frameTokens.setVisible(true);
//frameError.pack();
//frameError.setVisible(true);
}
}
Появилась ошибка следующая:
Исключение в потоке «основной» java.lang.ClassCastException: javax.swing.JTable $ 1 нельзя отнести к javax.swing.table.DefaultTableModel
Я знаю, что это проблема кастинга, но это единственное решение, которое я основал в Интернете. Мне нужно вводить данные несколько раз в цикле, поэтому я не знаю другого «дизайна ввода», может ли кто-нибудь мне помочь? Спасибо!
Почему бы просто не добавить строку непосредственно в tabTokens isntead, чтобы создать промежуточный объект, который заканчивается тем же. –