2011-05-13 104 views
3

我有列表和目錄,我需要與theese兩列創建的JTable。我很困惑與模型,可以anybofy告訴我該怎麼做,請,我是新來的搖擺和Java?放的JTextComponent和JComboBox JTable中

+1

介紹如何具體是什麼呢?如果你還沒有這樣做,你有沒有通過關於如何創建JTable和錶款的鞦韆教程哪裏去了?如果你有,那麼請澄清你的問題,因爲它寫得太過寬泛。 –

回答

2

check out my answer to some other question。我在哪裏提出了一個經常使用的簡單表格模型。

在你的情況,你會在下面的方式來創建數據:

//I assumed here list 1 and 2 have the same sizes 
List<Object> list1 = getList1(); 
List<Object> list2 = getList2(); 
int rNo = list1.size(); 
List<List<Object>> data = new ArrayList<List<Object>>(rNo); 
int cNo = 2; 
for(int i = 0; i < rNo; i++) 
{ 
    List<Object> r = new ArrayList<Object>(cNo); 
    r.add(list1.get(i)); 
    r.add(list2.get(i)); 
    data.add(r); 
} 
tm.setData(data); 
+0

這AbstractTableModel錯過了一些「有用」的方法和Model#fire ..... TableStructureChanged(),TableDataChanged()和TableCellUpdated(int row,int col); – mKorbel

+0

@mKorbel瞭解。那麼它有它的超級類的默認的。至於其他有用的方法'@覆蓋 \t公共類的getColumnClass(INT C) \t { \t \t返回getValueAt(0,c)中.getClass(); \t}'感謝這一個,你會得到一個單元格中的複選框,你使用布爾代替文本。 – Boro

+0

+1,也許OP的正確答案 – mKorbel

1

不用擔心,只要設置所需的組件作爲該列的單元格編輯器。簡單是不是。

摘要示例

public class JTextFieldCellEditor extends DefaultCellEditor {  
    JTextField textField;  
    public JTextFieldCellEditor() { 
     super(new JTextField()); 
     textField = (JTextField) getComponent(); 
    } 
} 

然後包括像下面,

TableColumn column = myTable.getColumnModel().getColumn(0); 
column.setCellEditor(new JTextFieldCellEditor()); 

延伸閱讀:

這裏是你最好的選擇,Swing tutorial for JTable