我的JTable根本没有显示

时间:2017-04-21 23:26:00

标签: java swing jpanel

我知道JTable通常放在JScrollPane中,但我根本不想滚动,我希望在添加行时表增长。 我已经使用NetBeans IDE 8.2来创建一个swing应用程序,它几乎可以完成我想要的表格,我已经把它放在JPanels,数据和标题中的单独面板中。

我尝试过基础知识并手工制作我需要的代码,但它根本没有显示该表。

public NewJFrame1() {
    initComponents();
    JTable table = new JTable();
    DefaultTableModel tableModel = new DefaultTableModel();
    tableModel.addColumn("Type");
    tableModel.addColumn("Folder");
    String[] row = {"Datum1","Datum2"};
    table.setModel(tableModel);
    tableModel.addRow(row);
    this.getContentPane().add(table.getTableHeader());
    this.getContentPane().add(table);
}

2 个答案:

答案 0 :(得分:1)

我认为您应该将模型设置为表格

table.setModel(tableModel); //add this to your code

好的,从我看到的,你正在使用Netbeans并创建JFrame。如果从设计中插入表,则不需要在构造函数中创建另一个表。只需:

public NewJFrame() {
    initComponents();
    DefaultTableModel tableModel = new DefaultTableModel();
    tableModel.addColumn("Type");
    tableModel.addColumn("Folder");
    String[] row = {"Datum1","Datum2"};
    tableModel.addRow(row);
    jTable1.setModel(tableModel);// where jTable1 has been created and instantiated automatically by netbeans when you draged and dropt it to your frame , from the design.
}

答案 1 :(得分:0)

Radu Soigan是对的,JTable和TableModel是需要使用setModel(tableModel)方法链接在一起的独立对象,因为表格不知道要显示的数据在哪里。对于自定义表模型也是如此,在设置模型后,请务必将其设置为JTable。