[英]Java: adding Image to 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());
}
}
但是,所有添加的內容都是文本javax.swing.ImageIcon@9dfb04
而不是實際圖片。
DefaultTableCellRenderer
擴展JLabel並通過setText(value.toString())
呈現。
遵循有關自定義單元格渲染器和編輯器的明確Swing教程 。
或使用像這樣的簡單技巧:
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);
}
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.