Java:将图像添加到JTable?

时间:2010-10-06 00:01:39

标签: java swing

点击时我有一个大按钮,将图像添加到表格

    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());

  }   
} 

但是,所有这些都是文字javax.swing.ImageIcon@9dfb04,而不是实际图片。

1 个答案:

答案 0 :(得分: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);
        }
    }
});