我在我的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);
}
这是我的代码。任何建议??
答案 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);