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;
}
}
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指向官网的例子
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯