你好我一直在使用javax swing,並且遇到了一個奇怪的問題,讓我質疑。 I例如:Javax Swing JTable :: getModel vs JTable :: getColumnModel
JTable table = new JTable();
// Indeed, 2 different objects:
// The TableModel (which, i think is supposed to contain rows and columns?
DefaultTableModel dtm = (DefaultTableModel) table.getModel();
// And the column model, supposed to define the columns of a table?
TableColumnModel tcm = table.getColumnModel();
// I can add columns to my table in two different manners
dtm.addColumn("A Column");
// or
TableColumn column = new TableColumn();
column.setHeaderValue("Another column");
column.setWidth(120);
column.setMinWidth(120);
column.setMaxWidth(120);
tcm.addColumn(column);
// And notice that both commands will add a column in the table
// So our table model should now have 2 columns.
// But does it?
System.out.println(dtm.getColumnCount()); // outputs 1;
System.out.println(tcm.getColumnCount()); // outputs 2;
System.out.println(table.getColumnCount()); // outputs 2;
// The visual shows 2 columns, but the model has only 1.
,從我可以告訴JTable使用的TableColumnModel和TableColumnModel中得到的所有列添加到TableModel的,但是,當我添加到TableModel的它被添加到表中的列,但tableModel仍然過時。
現在,問題是:通過columnModel添加一個列是非常有趣的,因爲我可以在那裏定義大小,佈局和可編輯選項,但是這樣我就不能從tableModel向它添加任何數據,因爲該列不會出現在tableModel上。 對此有何想法?
發佈無效代碼示例對任何浪費時間閱讀您的問題的人來說都是一種侮辱。 您不聲明或初始化變量「列」,最重要的一個。 – 2015-04-01 14:36:51
@LorenzoGatti我做了,我只是拼寫錯誤的Ctrl + V'ng一個片段的聲明。固定順便說一句。 – Felype 2015-04-01 14:38:14
這是這個[SO張貼]的副本(http://stackoverflow.com/questions/3696112/tablemodel-vs-columnmodel-who-owns-the-column-value) – hfontanez 2015-04-01 15:22:05