2012-09-10 60 views
0

我嘗試在添加圖像時使用setValueAt,但問題是它打印字符串並且不加載圖像。對此有任何幫助。代碼如下在JTable中添加圖像時顯示的字符串路徑

int selectedColumn = table1.getSelectedColumn(); 
int selectedRow = table1.getSelectedRow(); 
ImageIcon addIcon = new ImageIcon("c:\\onion.png"); 
table1.getModel().setValueAt(addIcon, selectedRow, electedColumn); 
+0

你可以發佈你的代碼如何創建你的JTable? – Sujay

回答

2

確保您的表格知道在給定列中存儲了什麼數據,以便它可以選擇適當的渲染器。所以,你的JTable創建代碼應該是這樣的:

DefaultTableModel tableModel = new DefaultTableModel(dataObject, columnNames); 
JTable table = new JTable(tableModel){ 
    public Class getColumnClass(int column){ 
     return getValueAt(0, column).getClass(); 
    } 
}; 
+4

是的,重寫getColumnClass在大多數情況下都是正確的事情 - 但是a)應該由模型來完成(不是由表格決定)b)通過實際值來做它有點冒險,至少必須防範null – kleopatra