从sql数据库插入Jtable的映像

时间:2015-03-07 16:31:34

标签: java swing sql-server-2008

我在我的java库中添加了rs2xml.jar,以便从我的数据库中获取表并通过我的Jtable显示它。但问题是我得到的所有其他列除了包含所有图像的列(img)。

 try{
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        conn = DriverManager.getConnection(DB_URL, USER, PASS);
        pst = conn.createStatement();
    String sql = "select * from employee_details";
    rs = pst.executeQuery(sql);
    ed.setModel(DbUtils.resultSetToTableModel(rs));
    }
    catch(Exception e)
    {
        JOptionPane.showMessageDialog(null, e);
    }

这是我的代码。任何建议??

1 个答案:

答案 0 :(得分:1)

  

但我没有得到任何图片。

你在TableModel中确实有一个Image吗?问题是将Image添加到TableModel还是在表中显示Image的问题?

JTable使用渲染器在表列中显示数据。您需要覆盖JTable的getColumnClass(..)方法,以告诉表中存储在表中的数据类型。

但是,JTable不支持图像的默认渲染器,因此您需要创建自定义渲染器。有关更多信息,请阅读使用自定义渲染器的Swing教程中的部分。

或者,使用ImageIcon替换Image可能更容易,因为JTable支持图标的默认渲染器。您需要循环遍历TableModel(在将其添加到表之前)并使用以下代码将每个Image更改为ImageIcon:

ImageIcon icon = new ImageIcon( model.getValueAt(row, column) );
model.setValueAt(icon, row, column);