JTable - почему он не сохраняет TableColumns после добавления строки? - PullRequest
1 голос
/ 07 декабря 2011

Я использую 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, похоже, возвращается к значению по умолчанию, и все столбцы имеют одинаковую ширину1004 *

1 Ответ

2 голосов
/ 07 декабря 2011

Ставим, что ваша пользовательская TableModel запускает структуру, измененную при вставке :-) Это неправильно, вместо этого используйте fireTableRowsInserted () .

...