2016-04-28 39 views
0

我有一個JTable並刪除它的一些列。一旦我刪除了列,我需要複製這個JTable。JTable克隆/不是模型

我無法複製模型,因爲模型仍然包含已刪除的列。那麼如何複製「可見模型」?

我並不需要複製JTable的圖形化Swing組件,我只需要它的「可見模型」。

+1

你是什麼意思的副本?你的意思是說有另一個框架,你必須顯示沒有列的複製表? – Blip

+0

這就是我的意思! ... - – user1104836

+0

只需創建TableModel對象的副本作爲新對象,而不使用不需要的列,然後使用此新的tableModel作爲新的JTable的模型 – Blip

回答

0

OMG,它非常簡單。您還需要將ColumnModel放置在新的JTable中:

JTable jtb = new JTable(ptable.getModel(), ptable.getColumnModel()); 
0
TableColumn col = jtable.getColumnModel().getColumn(0); 
jtable.getColumnModel().removeColumn(col); 

jtable.setAutoCreateColumnsFromModel(false); 
jtable.getmodel(); 

事情是你必須調用jtable.setAutoCreateColumnsFromModel(false); 其他聰明人,你會再次刪除列後得到的新列。試試這個 的方式。那麼你可以通過模型,它不會包含刪除的column.note,它在jtable中的一個屬性,所以一次調用方法setAutoCreateColumnsFromModel(false)就足夠了。

+0

如果我在刪除列之前或之後調用它,那麼不要工作。 :( – user1104836

+0

因此您的新模型仍包含已刪除列? – Priyamal

+0

是的,新模型包含已刪除列。 – user1104836