我有一个jtable,如果我将表数据设置为公共变量(不要将它放在tablemodel的参数上),一切正常.但是现在我需要将表数据设置为参数,表格不会刷新其内容.我打印出一些单元格值和行号,它们都更新和正确.只是显示没有改变,仍然是旧的内容.我一直在尝试所有类型的方法来刷新表,包括fireTableDataChanged和repaint,以及其他fire函数,它们都不起作用.请帮忙.非常感谢!!!!!!
表模型是:
public class MyTableModel extends AbstractTableModel {
protected String[] columnNames;
private String[][] data;
public MyTableModel(String[] columnNames, String[][] data){
this.columnNames = columnNames;
this.data = data;
//I add this here but it still doesn't refresh the table
fireTableDataChanged();
}
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return data.length;
}
public String getColumnName(int col) {
return columnNames[col];
}
public String getValueAt(int row, int col) {
return data[row][col];
}
public void setData(String[][] newdata) {
data = newdata;
fireTableDataChanged();
} …Run Code Online (Sandbox Code Playgroud) 我想将table2添加到已经有table1的scrollpanel(称为feedback)中.但只有一张桌子出现了.如果我使用feedback.add(table2),只有第一个表显示(我猜第二个表位于第一个表后面,但我不知道如何使第二个表位于第一个表之后).如果我使用feedback.getViewport().add(table2,null),只有第二个表显示.我需要在这里使用一些布局管理器吗?我试图在线搜索滚动面板布局,但没有得到任何解决方案.谁能告诉我这是什么问题或者给我一些相关的示例链接?非常感谢.相关代码是:
content = getContentPane();
content.setLayout(new FlowLayout());
scrollPane = new JScrollPane(tree);
feedback = new JScrollPane(table1);
JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,scrollPane, feedback);
content.add(splitPane);
.
.
.
.
feedback.add(table2);
//i add this, but still doesn't work
content.add(table2);
Run Code Online (Sandbox Code Playgroud)