2010-10-06 80 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); 
     } 
    } 
});