Then small series on one , a unit of this small series tried to add Gerry Jbable own compiler and renderer
Write your own renderer first need to expand DefaultTableCellRenderer rewrite getTableCellRendererComponent method
在这里插入代码片
import java.awt.Component;
public class me extends DefaultTableCellRenderer{
public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean isFocused,int row,int column) {
Image i=((ImageIcon)value).getImage();
ImageViewer m=new ImageViewer(i);
return m;
}
}
Xiao Bian will put his image in the picture viewer
在这里插入代码片
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JPanel;
public class ImageViewer extends JPanel {
Image i;
public ImageViewer(Image i) {
this.i=i;
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(i, 0, 0, getWidth(), getHeight(), this);
}
}
Then expand your table model, the one spoken
在这里插入代码片
import javax.swing.ImageIcon;
import javax.swing.table.DefaultTableModel;
public class my extends DefaultTableModel{
public my(Object [][]a,Object[]b) {
super(a,b);
}
public Class getColumnClass (int c) {
return getValueAt(0,c).getClass();
}
public boolean isCellEditable(int a,int b) {
return getColumnClass(b)!=ImageIcon.class;
}
}
Main categories:
在这里插入代码片
import java.*;
import java.awt.*;
import java.awt.event.*;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
public class Main1 extends JApplet{
ImageIcon image=new ImageIcon("D:\\java1\\程序\\ai\\程序\\src\\lianxi\\a.jpg");
ImageIcon image1=new ImageIcon("D:\\java1\\程序\\ai\\程序\\src\\lianxi\\t.jpg");
private JTable table;
private String[] biaotou= {"name","sex","qq"};
private Object [][] neirong= {{"dun","boy",image},{"qi","girl",image1},{"fr","boy",image1}};
private my model=new my(neirong,biaotou);
public Main1() {
table=new JTable(model);
add(table);
table.setRowHeight(60);
TableColumn c=table.getColumn("qq");
c.setCellRenderer(new me());//设置自己的绘制器
TableColumn u=table.getColumn("sex");
u.setCellEditor(new DefaultCellEditor(new JTextField()));//设置自己的编辑器
}
}