我想在JTable中显示一些东西。
问题是JTable的列名称是"A","B","C",…
我的代码是这样的:import javax.swing.JTable;
public class View extends JFrame implements Observer {
private JTable contentTable;
public View() {
...
String[][] s = {{"test","test","test", "test}};
String[] columnNames = { "Name", "Category", "Start", "End" };
this.contentTable = new JTable(new MyTableModel(columnNames, s));
this.contentPanel.add(new JScrollPane(this.contentTable));
...
}
}
这里是MyTableModel类
import javax.swing.table.AbstractTableModel;
public class MyTableModel extends AbstractTableModel {
private String[] columnNames;
private Object[][] data;
public MyTableModel(String[] columns, Object[][] dat){
this.columnNames = columns;
this.data = dat;
}
...
}
如果我不使用TableModel,它的工作原理为:this。contentTable = new JTable(s, columnNames);,但我不知道如何改变表,如果有一些新的数据…这就是为什么我使用TableModel。
我不知道为什么列不显示,但数据显示…
亲切的问候!
在MyTableModel中你需要重写
public String getColumnName(int column)
返回你的数据,例如
public String getColumnName(int column) {
return columnNames[column];
}
您还需要重写
getColumnCount();
和findColumnName();