当然可以,帮JTable定义一个render类,采用JLabel,
在JLabel设置图片得了
在JLabel设置图片得了
解决方案 »
- 新手求救!~
- 获取输入年月日之后的第一个星期的日期有哪几种方法?其中类 Calendar具体用法?
- 在论坛上看到这么一个题目,有装满药片的5个广口瓶,其中一个瓶子的药片已经被污染。没污染的药每片10gm,被污染的每片9pm。给你一个天平,如何只经过一次测量找出被污染的药瓶?
- itext 怎么访问一个PDF文件啊
- 没有老师指点,请求帮忙
- tomcat链接池自动提交的问题?
- throws在代码中的作用?
- 如何在进程B中按引用调用方式使用进程A中的参数?也就是怎样让进程A中的参数传送到进程B?
- 关于包的经典难题,100分相送,不够无限加!!!
- Jbuuilder使用问题小妹刚用JBUILDER哪位大哥哥可以教我一下,小妹先谢谢了,在线等待。QQ25096679
- 提问学JBuilder看什么书好?对有价值的建议有重分!
- 有谁知道pushlet这种东西,小弟有个项目要用到,各位知道的帮帮忙吧:)
扩展AbstractTableModel,使用ImageIcon做字段,那么jtable就自己会显示图片了
class MyTableModel extends AbstractTableModel {
final String[] columnNames = {"First Name",
"Last Name",
"photo",
"# of Years",
"Vegetarian"};
final Object[][] data = {
{"Mary", "Campione",
new ImageIcon("filename");new Integer(5), new Boolean(false)},
{"Alison", "Huml",
new ImageIcon("filename"),new Integer(3), new Boolean(true)};
//只需要生成ImageIcon对象就可以
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return data.length;
} public String getColumnName(int col) {
return columnNames[col];
} public Object getValueAt(int row, int col) {
return data[row][col];
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
public boolean isCellEditable(int row, int col) {
return false;
}
public void setValueAt(Object value, int row, int col) {
...
}
import java.awt.Graphics;
import java.awt.Image.*;
import javax.swing.*;class showImage extends JPanel{ public static void main(String[] args){ int width;
int height; ImageIcon icon = new ImageIcon("insect.jpg"); width = icon.getIconWidth();
height = icon.getIconHeight(); JLabel label = new JLabel(icon);
label.setHorizontalAlignment(SwingConstants.LEFT);
label.setVerticalAlignment(SwingConstants.TOP); JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setContentPane(label);
f.setSize(width,height);
f.setVisible(true);
System.out.println("Hello World!");
}
}
代码如下,我该怎么改?import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.table.AbstractTableModel;public class Frame1 extends Frame{
BorderLayout borderLayout1 = new BorderLayout();
JTable jTable1 = new JTable();
public static void main(String[] args){
Frame1 myframe=new Frame1();
myframe.setSize(new Dimension(250,250));
myframe.setVisible(true);
} public Frame1() {
super();
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
} private void jbInit() throws Exception {
System.out.print("Header Length="+header[0]);
//jTable1=new JTable(data,header);
MyTableModel myTableModel=new MyTableModel();
JTable table = new JTable(myTableModel);
jTable1.setCellSelectionEnabled(true);
this.setTitle("Excel lent JTable");
this.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(WindowEvent e) {
this_windowClosing(e);
}
});
jTable1.setBackground(Color.pink);
this.setLayout(borderLayout1);
this.setSize(new Dimension(400,300));
this.setBackground(Color.white);
this.add(jTable1, BorderLayout.CENTER);
//------------------------------
//ExcelAdapter myAd=new ExcelAdapter(jTable1);
} void this_windowClosing(WindowEvent e) {
System.exit(0);
}
}
class MyTableModel extends AbstractTableModel {
final String[] columnNames = {"photo"};
final Object[][] data = {
{ new ImageIcon("f:/temp/save/spcinit.gif")}
};
//只需要生成ImageIcon对象就可以
public int getColumnCount() {
return columnNames.length;
} public int getRowCount() {
return data.length;
} public String getColumnName(int col) {
return columnNames[col];
} public Object getValueAt(int row, int col) {
return data[row][col];
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
} public boolean isCellEditable(int row, int col) {
return false;
}}