我想在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);,但我不知道如果有一些新数据如何更改表...那&# 39;为什么我使用TableModel。
我不知道为什么列没有显示但数据显示...
亲切的问候!
答案 0 :(得分:2)
在MyTableModel中,您需要覆盖
public String getColumnName(int column)
返回您的数据,例如
public String getColumnName(int column) {
return columnNames[column];
}
您还需要覆盖
getColumnCount();
和findColumnName();