2012-12-02 60 views
1

的Java GUI aplication,從列表 加載數據到JTable中我發現下面的鏈接,但我還沒有找到一個答案:http://docs.oracle.com/javase/tutorial/uiswing/components/table.html的Java GUI aplication,從列表加載數據的JTable <objects>

請某人給我一個例子,我應該怎麼做。 我的對象有5個字段:姓名,年級,薪水,生日年,性別 和列表是從一個文件中獲得的,所以我不知道該列表有多少個選項。 我正在NetBeans中工作。

回答

1

您鏈接的教程有一個示例:http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#data。您應該能夠使其適應List<Employee>容易:

public int getRowCount() { 
    return list.size(); 
} 

public int getColumnCount() { 
    return 5; 
} 

public Object getValueAt(int row, int col) { 
    Employee employee = list.get(row); 
    if (col == 0) { 
     return e.getName(); 
    } 
    else if (col == 1) { 
     return e.getGrade(); 
    } 
    ... 
} 
+0

此相關[示例](http://stackoverflow.com/a/9134371/230513)示出利用'Map'。 – trashgod

+0

即時通訊有點新的Java,所以我想有另一個問題netbeans automaticaly爲我生成的表,我應該在哪裏給表的價值?自動生成的代碼不能修改... – LogofaT

+0

我不知道Netbeans生成了哪些代碼,以及如何定製它,但是必須有一種方法來指定表必須使用的模型。我建議不要使用像Netbeans這樣的wysiwyg編輯器,特別是如果你不知道Swing是如何工作的。從學習如何自己完成所有事情開始,然後您將瞭解編輯器如何幫助(或不是)以及如何自定義它生成的代碼。 –

0

使用矢量應該可以幫到你。 Load an array to a Java table

Vector model = new Vector(); 
Vector row = new Vector(); 

row.add("abce"); 
row.add("def"); 
row.add("ghi"); 
model.add(row); 

row = new Vector(); 
row.add("sds"); 
row.add("sdfds"); 
row.add("24"); 
model.add(row); 

JTable table = new JTable(model);

Vector的所有方法都是同步的。但是,ArrayList的方法不同步。