import java.util.Vector;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class TableIco extends JFrame {
private static final long serialVersionUID = 1L;
private ImageIcon la = new ImageIcon(TableIco.class.getResource("1.jpg"));
private ImageIcon lb = new ImageIcon(TableIco.class.getResource("2.jpg"));
private JTable ta = null;
private JScrollPane pan = null;
private DefaultTableModel model = null;
public TableIco() {
this.setBounds(200, 200, 400, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
model = new IconModel(new Object[][] { { la }, { lb } },
new Object[] { "只显示如片" });
ta = new JTable(model);
pan = new JScrollPane(ta);
this.getContentPane().add(pan);
this.setVisible(true);
}
public static void main(String[] args) {
new TableIco();
}
}
class IconModel extends DefaultTableModel {
private static final long serialVersionUID = 1L;
public IconModel(Object[] cnames, int row) {
super(cnames, row);
}
public IconModel(Object[][] data, Object[] columnNames) {
super(data, columnNames);
}
//important here
public Class<?> getColumnClass(int col) {
Vector<?> v = (Vector<?>) dataVector.elementAt(0);
return v.elementAt(col).getClass();
}
public boolean isCellEditable(int row, int col) {
Class<?> columnClass = getColumnClass(col);
return columnClass != ImageIcon.class;
}
}
swing中如何让表格中显示图片
本文介绍如何在Java Swing的JTable组件中显示图片。通过创建自定义的IconModel类,继承DefaultTableModel,并重写getColumnClass方法,使得表格能够正确处理ImageIcon对象。示例代码展示了如何加载并显示两张图片在表格中。


被折叠的 条评论
为什么被折叠?



