/** * */ package com.niit.javagui; import java.util.Vector; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; /** * @author: Annie * @date:2016年5月31日 * @description: */ public class JTabelDemo extends JFrame{ public static void main(String[] args) { new JTabelDemo(); } JTable tabel; JPanel jp; MyDateModel model; ImageIcon img1,img2,img3; public JTabelDemo() { setVisible(true); setSize(400, 400); setTitle("JTabelDemo"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //标题数组 String [] columns = {"照片","学号","姓名","年龄","专业"}; //项目的相对路径./代表项目名称 img1 = new ImageIcon("./src/picture/dm.png"); img2 = new ImageIcon("./src/picture/dm.png"); img3 = new ImageIcon("./src/picture/dm.png"); //数据数组 Object [][] data = { {img1,"1001","张三","30","软件"}, {img2,"1002","李四","18","计算机"}, {img3,"1003","麻子","25","不详"} }; model = new MyDateModel(data,columns); jp = new JPanel(); //table = new (data,columns);//没有图片时的实例化 tabel = new JTable(model);//存在图片时的实例化 tabel.setRowHeight(100); JScrollPane scrollPanel = new JScrollPane(tabel); jp.add(scrollPanel); add(jp); } } //显示一张图片 class MyDateModel extends DefaultTableModel{ public MyDateModel(Object[] names ,int row) { super(names,row); } public MyDateModel(Object [][]data,Object[]names) { super(data,names); } @Override public Class<?> getColumnClass(int col) { //返回某一列的对应的类型 Vector<?> v = (Vector<?>) dataVector.elementAt(0); return v.elementAt(col).getClass(); } }
效果图: