У меня есть дерево и таблица на моей панели, когда я нажимаю узел дерева, таблица должна меняться одновременно, но это не так. Я ищу в Интернете и читаю учебник по Java и не нашел никаких решений. Из некоторых сообщений я думаю, что мне нужно использовать fireTableStruetureChanged()
, но он просто не работает в моем коде. Может ли кто-нибудь помочь мне в этом? Ниже приведен код. Благодаря тонну!Java JTable restructure/reload/refresh
public class tableStructureChange extends JFrame implements ... {
.....
///columnNames is a public variable, because I need to change the columns later
columnNames = new String[] {"col1","col2"}; */
data = new String[][]{
{"Mary", "Campione"},
{"Alison", "Huml"}, };
table = new JTable(new MyTableModel());
table.setAutoCreateColumnsFromModel(false);
feedback = new JScrollPane(table); //feedback is the bottom panel
...
}
//the following class is the problem, i need the table to be reloaded
//when the class is called, but the table doesn't change at all
public void displayFeedback(String tempString) {
//create table for bottom panel
columnNames = new String[] {"col3","col4", "col5"};
String[][] data = new String[][]{
{"Mary", "Campione", "us"},
{"Alison", "Huml", "canada"}, };
//table = new JTable(data, columnNames);
//fireTableStructureChanged(); //this is the problem part
}
// мой стол модель класс MyTableModel расширяет AbstractTableModel { String [] columnNames = новый String [] { "col1", "col2"};
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return data.length;
}
public String getColumnName(int col) {
return columnNames[col];
}
public Object getValueAt(int row, int col) {
return data[row][col];
}
}
... }
Не могли бы вы попробовать и вырезать ненужные данные в своем коде, чтобы мы могли сосредоточиться на реальных проблемных областях? – jjnguy
Привет, Джастин, Спасибо за ваш ответ. Я отредактировал код и оставил там соответствующий код. Может помочь мне взглянуть на это. Большое спасибо !! – blueigloo3