Swing JTable-为什么不';添加一行后,它不保留表格列吗?

Swing JTable-为什么不';添加一行后,它不保留表格列吗?,swing,jtable,tablemodel,nstablecolumn,Swing,Jtable,Tablemodel,Nstablecolumn,我正在使用JTable: public class MyPanel extends JPanel { public MyPanel () { init() } init () { DataModel model = new DataModel(); JTable table = new JTable (model); TableColumnModel tcm = agentsTable.getColumnModel(); tcm.getColumn(FIRST).s

我正在使用JTable:

public class MyPanel extends JPanel {

public MyPanel () {
   init()
}


init () {
DataModel model = new DataModel();
JTable table = new JTable (model);

TableColumnModel tcm = agentsTable.getColumnModel();
        tcm.getColumn(FIRST).setPreferredWidth(15);
        tcm.getColumn(SECOND).setPreferredWidth(100);
        tcm.getColumn(THIRD).setPreferredWidth(200);


        JScrollPane scroller = new JScrollPane();
        scroller.getViewport().add(table);
        this.add(scroller, BorderLayout.CENTER);
}

}


public class DataModel extends AbstractTableModel {

public final static int FIRST = 0;
public final static int SECOND = 1;
public final static int THIRD= 2;

...

}

问题是每次我向模型中添加一行时,TableColumnModel似乎会返回默认值,并且所有列的宽度都相同

打赌您的自定义TableModel会在插入时触发结构更改:-),这是不正确的,请改用。

@kleopatra您的开始括号
未关闭~!:p获取列模型时,您为什么使用
agentsTable
呢?您的表名为
table
。复制代码时出错了吗?复制我的表时出错了code@AdiMor-好吧,我输了,错误在别处:-)展示SSCCE@trashgod-谢谢你添加链接!刚刚又删除了那个难看的灰色背景,这损害了阅读流程(我的,至少:-)