2010-12-04 83 views
0

我使用的NetBeans IDE隨附了一個非常方便的GUI創建工具,但遇到了麻煩。插入數據到JTable?

我正在爲數據源創建第一個查詢並以字符串數組的形式接收該數據的應用程序。我如何將這些數據插入到我使用GUI創建者放入我的窗口的jtable中。

我不是一個完整的java新手,所以我知道這個GUI背後的代碼,並且已經完成了swing編程。

例如,假設我有一個字符串的兩個數組:

String[] tableA_01 = {"Column01","Column02","Column03","Column04"}; 
String[] tableA_02 = {"Data01","Data02","Data03","Data04"}; 

我怎麼會插入第一個數組值到第一列,然後第二陣列值到第二個欄,我沒用過JTable組件在擺動之前,所以我不知道。

任何幫助將不勝感激,

回答

0

的數據並不進入JTable直接;相反,它進入TableModel。您可以使用DefaultTableModel或者您可以創建自己的實現。

如果DefaultTableModel沒有做到你想要的,就很容易子類AbstractTableModel

0

如果您之前完成過Swing編程,您應該知道GUI組件由單獨的模型類支持。對於像文本字段這樣的簡單組件,您可以不用處理那麼多,但對於表格,您必須處理TableModel。你可以直接使用DefaultTableModel - 它甚至有一個構造函數,它需要一個二維數組。

0

那麼我懷疑你會使用它們作爲列的數據。相反,它看起來像第一個數組將是4列的「標題」值,然後第二個數組將是這4列的「數據」值。

您的代碼將是這樣的:

DefaultTableModel model = new DefaultTableModel(tablea_01, tableA_02); 
JTable table = new JTable(model); 

閱讀JTable的API,並按照「如何使用表」的詳細信息和工作實例鏈接到Swing指南。

2

您正在做這一切錯誤的隊友,在Jtable的defaultTableModel中,您可以非常輕鬆地添加數據。 例如

DefaultTableModel table = (DefaultTableModel) <some JTable>.getModle(); 
table.addRow{"<column1 value>","<column2 value>"};// maybe even more columns 
從兩個數組

所以即

String[] tableA_01 = {"Column01","Column02","Column03","Column04"}; 
String[] tableA_02 = {"Data01","Data02","Data03","Data04"}; 

使陣列狀

String[] row1 = {"Column01","Data01"}; 
String[] row2 = {"Column02","Data02"}; 
String[] row3 = {"Column03","Data03"}; 
String[] row4 = {"Column04","Data04"}; 

看起來繁瑣,但你可以通過使用

把這個循環和更新
table.addRow(row1);