2010-10-06 84 views
1

我點擊時一個大按鈕,添加圖像到表Java:將圖像添加到JTable?

class BigButtonListener implements ActionListener{ 
Image screenshot=null; 
Browser bigbrowser =null; 

BigButtonListener(Browser browser, DefaultTableModel dataModel, DefaultTableModel historyModel, JTable dataTable, JTable historyTable) { 
    screenshot = browser.toImage(true); 
    bigbrowser = browser; 
    historyTable = historyTable; 
    //table1.addRow 
} 

    @Override 
    public void actionPerformed(ActionEvent e) { 
    // save current image 
    historyModel.insertRow(0,new Object[]{new ImageIcon(screenshot)}); 
    //System.out.println(historyTable.getRowCount()); 

    } 
} 

然而,這一切都增加是文本[email protected],而不是實際的圖片。

回答

1

DefaultTableCellRenderer擴展JLabel並簡單地通過setText(value.toString())呈現。

按照自定義單元格渲染器和編輯器上的definite Swing tutorial

或者用簡單的黑客就像這樣:

historyTable.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() { 
    protected void setValue(Object value) { 
     if(value instanceof ImageIcon) { 
      setIcon((ImageIcon)value); 
      setText(""); 
     } else { 
      setIcon(null); 
      super.setValue(value); 
     } 
    } 
});