点击时我有一个大按钮,将图像添加到表格
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
,而不是实际图片。
答案 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);
}
}
});