swing中如何让表格中显示图片

本文介绍如何在Java Swing的JTable组件中显示图片。通过创建自定义的IconModel类,继承DefaultTableModel,并重写getColumnClass方法,使得表格能够正确处理ImageIcon对象。示例代码展示了如何加载并显示两张图片在表格中。

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;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值