JTable列名显示错误
我想在JTable中显示一些东西。JTable列名显示错误
的问题是,JTable中COLUMNNAMES是 “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;
}
...
}
如果我不使用它的工作原理的Fe的TableModel:this.contentTable =新的JTable(S,COLUMNNAMES);,但我不知道如何更改表是否有一些新的数据...这就是我使用TableModel的原因。
我不知道为什么列没有显示,但显示的数据...
亲切的问候!
在MyTableModel你需要重写
public String getColumnName(int column)
来回报您的数据,例如
public String getColumnName(int column) {
return columnNames[column];
}
你也将要重写
getColumnCount();
和findColumnName();
啊完美谢谢你,这工作正常! – XenonUnlimited 2013-04-30 21:25:35
在你的情况下,你可以使用DefaultTableModel来保存一些工作。但是,通常情况下,DefaultTableModel会发臭 - 最好是做你所做的事情并编写你自己的AbstractTableModel的子类。 – user949300 2013-04-30 21:30:43
这个问题不回答的,感觉就像是给我的代码,请阅读[神谕JTable的教程(HTTP: //docs.oracle.com/javase/tutorial/uiswing/components/table.html#data),然后用[SSCCE](http://sscce.org/)编辑你的问题,简短,可运行,可编译,只是JScrollPane中带有JTable的JFrame, – mKorbel 2013-04-30 21:15:52
“A”,“B”,“C”是在API中实现的默认值,当值对于JTableHeader是不可访问的 – mKorbel 2013-04-30 21:17:17
@mKorbel我做了SSCCE,但现在得到了答案,所以我不会添加它...谢谢你的提示.. – XenonUnlimited 2013-04-30 21:26:24