JTable列名显示错误



我想在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();

相关内容

  • 没有找到相关文章

最新更新