永发信息网

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

答案:2  悬赏:40  手机版
解决时间 2021-12-24 20:28
  • 提问者网友:欺烟
  • 2021-12-23 23:54
我想让表格中显示图片,在表格中插入数据,不过数据类型为了显示图片是ImageIcon,就不显示。不在表格中显示则好用,表格中显示为:javax.swing.ImageIcon@cf2c80,不知如何能显示为图片,如知道怎么解决帮助下,谢谢
最佳答案
  • 五星知识达人网友:纵马山川剑自提
  • 2021-12-24 00:11
//表格大小就自己调了,我只给出显示的方法

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;
}
}
全部回答
  • 1楼网友:枭雄戏美人
  • 2021-12-24 01:15
javax.swing.table.tablemodel 打开 api 文档后,有url指向官网的例子
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯