2013-02-12 77 views
3

我試圖以顯示圖像進入塔一個JTable的25號: - 對於我寫下面的代碼: -顯示圖象內的JTable

jTable1.getColumnModel().getColumn(25).setCellRenderer(jTable1.getDefaultRenderer(ImageIcon.class)); 
    String query = "SELECT name,type,supplier, department, manufacturer, model, serial_no, description, location, broker, dop, installation_date, expiring_date, retiring_date,warranty_info, icost, rcost, aarea, voltage, wattage, amperage, eline, capacity, plink, notes, adding_date, modification_date from assets where company_code='" + ims.MainWindow.cc + "' and adding_date between '" + new java.sql.Date(df.parse(df.format(jXDatePicker1.getDate())).getTime()) + "' and '" + new java.sql.Date(df.parse(df.format(jXDatePicker2.getDate())).getTime()) + "'"; 
      System.out.println(query); 
      ResultSet rs = st.executeQuery(query); 
      int xx = 1; 
      byte[] imagedata=null; 
      ImageIcon format=null; 
      java.awt.Image originalImage=null; 
      java.awt.Image scaledImage=null; 

      javax.swing.ImageIcon newIconImage=null; 
      while (rs.next()) { 
       if(rs.getBytes(24)!=null){ 
       imagedata=rs.getBytes(24); 
        format = new ImageIcon(imagedata); 
       originalImage = format.getImage(); 
       scaledImage = originalImage.getScaledInstance(268, 200, java.awt.Image.SCALE_SMOOTH); 
       newIconImage = new javax.swing.ImageIcon(scaledImage); 
       } 
       mod.addRow(new Object[]{xx, rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getString(6), rs.getString(7), rs.getString(8), rs.getString(9), rs.getString(10), rs.getString(11), rs.getString(12), rs.getString(13), rs.getString(14), rs.getString(15), rs.getString(16), rs.getString(17), rs.getString(18), rs.getString(19), rs.getString(20), rs.getString(21), rs.getString(22), rs.getString(23), newIconImage, rs.getString(25), rs.getString(26), rs.getString(27)}); 
       xx++; 
      } 

當我運行包含下面碼的幀,而不是在圖像列中顯示「圖像」列中的圖標「[email protected]」。請幫助

回答

3

您可以嘗試更改設置圖像圖標渲染器的列號。 即嘗試24

jTable1.getColumnModel().getColumn(25).setCellRenderer(jTable1.getDefaultRenderer(ImageIcon.class)); 

我懷疑渲染器不會更改您添加圖像圖標列。

0

我認爲你需要的列數更改爲24,而不是25

jTable1.getColumnModel().getColumn(24).setCellRenderer(jTable1.getDefaultRenderer(ImageIcon.class));