JTable不能显示列名,为什么?帮帮忙.
这是我的程序:
我使用 DefaultTableModel时也是,出现相同问题,到底是什么原因,请高手指教.
public class MainFrame extends JFrame {
private Vector data = new Vector();
public MainFrame() {
setSize(400,300);
Init();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
show();
}
private void Init()
{
for(int i = 0 ; i < 8 ; i++)
{
Vector temp = new Vector();
temp.addElement(String.valueOf(i+100));
temp.addElement(String.valueOf(i+200));
temp.addElement(String.valueOf(i+300));
data.addElement(temp);
}
MyModel myModel = new MyModel(data);
JTable table = new JTable();
table.setAutoCreateColumnsFromModel(false);
table.setModel(myModel);
for(int i = 0 ; i < 3 ;i++)
{
DefaultTableCellRenderer renderer = new
ColoredTableCellRenderer();
TableColumn columns = new TableColumn(i,100, renderer, null);
table.addColumn(columns);
}
Container cp = this.getContentPane();
cp.add(table);
}
public static void main(String args[])
{
MainFrame mainfrm = new MainFrame();
}
}
class MyModel extends AbstractTableModel
{
protected Vector m_data = new Vector();
public static String[] names = {"A","B","C"};
public MyModel(Vector data)
{
m_data = data;
}
public int getColumnCount() {
return names.length;
}
public int getRowCount() {
return m_data == null ? 0 : m_data.size();
}
public Object getValueAt(int rowIndex, int columnIndex) {
return ((Vector) m_data.get(rowIndex)).get(columnIndex);
}
public String getColumnName(int column){
return names[column];
}
}