我定义了一个表数据模型,继承自AbstractTableModel,重写了4类方法。
成员变量为:
Vector<String> columns;--列名
Vector<Object> rows;--数据
SqlHelper sh; --用于连接数据库
ResultSet rs;--结果集
然后用JTbale调用这个表数据模型,现在的问题是:
以前第4列显示的是图片的路径(从数据库中读到的),如何让这一列显示出图片呢?Demo里面的SwingSet2的代码太多了,实在是头大呀O(∩_∩)O~
成员变量为:
Vector<String> columns;--列名
Vector<Object> rows;--数据
SqlHelper sh; --用于连接数据库
ResultSet rs;--结果集
然后用JTbale调用这个表数据模型,现在的问题是:
以前第4列显示的是图片的路径(从数据库中读到的),如何让这一列显示出图片呢?Demo里面的SwingSet2的代码太多了,实在是头大呀O(∩_∩)O~
解决方案 »
- GUI的好奇怪现象,找不到原因!!
- getResourceAsStream与直接new出一个InputStream的子类
- 问一下:tftp客户端有没有可能在浏览器上实现?
- swing的一个奇怪问题
- 100分:为什么输出这个
- java里有什么规范 jsp里有什么规范
- java采用Unicode编码。也就是两字节,可是为何存成文件时变成四字节
- JDialog的问题,setDefaultLookAndFeelDecorated 后关闭按钮不见了!怎么办?
- jbuilder在那里设置classpath?
- 弱智问题!初学者,急急!
- how to solve the classpath problem?
- java 中CardLayout布局模式问题
重载TableModel的getTableCellEditorComponent方法,在指定的单元格将自定义的组件返回即可。
http://blog.csdn.net/chosen0ne/archive/2009/08/16/4453267.aspxpublic Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
//根据column判断是不是需要显示图片的列,是的话就根据value生成ImageIcon,返回相应的JLabel
if(....){//是
return new JLabel(new ImageIcon(value));
}else{//否
return super.getTableCellRendererComponent(table, value, isSelected,hasFocus, row, column);
}
}
}
jpc_jt = new JTable();
dm = new DietModel();//抽象表模型
dm.queryAll();//数据查询,第4列为存储图片的路径
jpc_jt.setModel(dm);
修改后的代码:
jpc_jt = new JTable();
dm = new DietModel();//抽象表模型
dm.queryAll();//数据查询,第4列为存储图片的路径
TableCellRenderer renderer = new ColorTableCellRenderer();
jpc_jt.setDefaultRenderer(Object.class, renderer);
jpc_jt.setModel(dm);
其中TableCellRenderer如下:
public class ColorTableCellRenderer extends DefaultTableCellRenderer {
DefaultTableCellRenderer renderer=new DefaultTableCellRenderer();
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
if(column==4){
return new JLabel(new ImageIcon(".settings/dietiamges"+value.toStrin()));
}else{
return super.getTableCellRendererComponent(table, value, isSelected,hasFocus, row, column);
}
}
}
我希望JTable 的行高固定为128 把图片的大小也缩放成128,应该就能正常显示了?