2016-10-07 4 views
1

"[email protected]" wird in der Spalte der jtable angezeigt, wo der Bilder sollen erscheinen. Ich habe die Gif-Bilder als BLOBs in der Java-Derby-Datenbank gespeichert. Welche Dosis bedeutet das?"[email protected]" anstelle des Bildes, das auf der Jtable aus der Datenbank angezeigt wird

Dies ist die Renderer Klasse:

package JavaApplication29; 
import java.awt.Component; 
import javax.swing 

import javax.swing.table.DefaultTableCellRenderer; 

public class ImageRenderer extends DefaultTableCellRenderer{ 
@Override 
public Component getTableCellRendererComponent(JTable table,Object 
value, boolean isSelected,boolean hasFocus, int row, int column) 
{ 
    JLabel label = new JLabel(); 

    if (value!=null) { 
    label.setHorizontalAlignment(JLabel.CENTER); 

    label.setIcon(new ImageIcon((byte[])value)); 
    } 

    return label; 
} 

} 

Und dies ist der actionPerformed Teil:

DefaultTableModel model = new DefaultTableModel(); 




     String sqlQuery = "select COLUMN1, COLUMN2, COLUMN3, COLUMN4, 
    COLUMN5 from APP.DATA123 " 
    + "where (COLUMN1 = ?) AND (COLUMN2 = ?) AND (COLUMN3 = ?) OR 
(COLUMN2 
    = ?) AND (COLUMN3 = ?)"; 



     String abc = jTextField2.getText(); 
     String cba = (String)jComboBox1.getSelectedItem(); 
     String cab = (String)jComboBox2.getSelectedItem(); 
     String data = "jdbc:derby://localhost:1527/sample"; 
    try (
      Connection conn = DriverManager.getConnection(
      data, "app", "app"); 
      PreparedStatement st = conn.prepareStatement(sqlQuery)) { 



     Class.forName("org.apache.derby.jdbc.ClientDriver"); 
     st.setString(1, abc); 
     st.setString(2, cba); 
     st.setString(3, cab);  
     st.setString(4, cba); 
     st.setString(5, cab); 
     ResultSet rec = st.executeQuery(); 
     jTable1.getColumnModel().getColumn(6).setCellRenderer(new  
    ImageRenderer()); 
     jTable1.setModel(DbUtils.resultSetToTableModel(rec)); 

      st.close(); 


     } catch (SQLException s) { 
     System.out.println("SQL Error: " + s.toString() + " " 
       + s.getErrorCode() + " " + s.getSQLState()); 
    } catch (Exception e) { 
     System.out.println("Error: " + e.toString() 
     + e.getMessage()); 
+0

Können Sie den problematischen Code teilen? – Mureinik

+0

Ja, ich habe es gerade hinzugefügt. Habe es immer noch nicht gelöst – Evan12

Antwort

0

toString() scheint gegen das Objekt eines Blob-Objekt ausgeführt worden zu sein - Der Inhalt sollte wurden stattdessen genommen.

Verwandte Themen