Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将图像添加到结果集中包含哪些数据的jtable_Java_Swing_Netbeans_Jtable_Imageicon - Fatal编程技术网

Java 将图像添加到结果集中包含哪些数据的jtable

Java 将图像添加到结果集中包含哪些数据的jtable,java,swing,netbeans,jtable,imageicon,Java,Swing,Netbeans,Jtable,Imageicon,可能重复: 我在向jtable添加图像时遇到一个问题。我可以向jtable添加单个图像。但问题是我的结果集中有更多图像。我尝试了while循环,但它不起作用。 谢谢大家 这是我的密码 public void setableimage(String name) throws SQLException { try { ImageIcon ico; DBConnManager dbconn = new DBConnManager();

可能重复:

我在向jtable添加图像时遇到一个问题。我可以向jtable添加单个图像。但问题是我的结果集中有更多图像。我尝试了while循环,但它不起作用。 谢谢大家

这是我的密码

public void setableimage(String name) throws SQLException
{

    try 
    {
        ImageIcon ico;
        DBConnManager dbconn = new DBConnManager();
        Connection conn = dbconn.getConnect();

        Statement stmt = conn.createStatement();

        ResultSet rst = stmt.executeQuery("SELECT image,F_name,L_name FROM person WHERE F_name LIKE '"+name+"%'  ");

        while(rst.next())
        {

            byte[]imagedata = rst.getBytes(1); // get image data to byte array

            String perName = "          "+rst.getString(2).toString()+"   "+rst.getString(3).toString(); // get fersons name 

           ico = new ImageIcon(imagedata);  // create image icon


           MyTableModel model = new MyTableModel(); // create MyTableModel

           ImageRender im = new ImageRender();   // create ImageRender object

           im.setIcon(ico);    // set the icon like Person's image
           im.setDes(perName); // set the image description  like First name and Last name



           jTable1.setModel(model); 
           jTable1.setRowHeight(80);
           jTable1.getColumnModel().getColumn(0).setCellRenderer(im);



        }

    }

    catch (SQLException ex) {

        System.out.println(ex);
    }
    catch(Exception ex)
    {
        System.out.println(ex);
    }


}

public class MyTableModel  extends AbstractTableModel{


@Override
public int getRowCount() {
    return 1;
}

@Override
public int getColumnCount() {

    return 1;
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
    return ""+(rowIndex*columnIndex);
}


}

///////////////////////////////////imageRender class

public class ImageRender  extends DefaultTableCellRenderer
{ 
  JLabel lbl = new JLabel();

      ImageIcon icon ;

      String des;

      public void setDes(String des)
      {
        this.des = des;
      }

    public void setIcon(ImageIcon icon)
    {
        this.icon = icon;

    }


  public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
  boolean hasFocus, int row, int column) 
  {
        lbl.setText(des);
        lbl.setIcon(icon);
        return lbl;
  }


}

对于
ImageIcon
,应该是令人满意的,但是您需要在
AbstractTableModel
中重写
getColumnClass()
,以返回正确的类型。另请参见此内容。

不客气。虽然此问题不适用于新答案,但您可以单击左侧的接受此答案。