# Bild in JTable anzeigen



## kejo (22. Nov 2006)

Hallo!

Leider krieg ich es nicht hin, dass mir ein Bild in der JTable angezeigt wird.

Ich poste hier mal die relevanten Zeilen:

```
Image img = null;
try{img=ImageIO.read(getClass().getResource("bild7.JPG"));}catch(IOException ex){}
JLabel icon = new JLabel(new ImageIcon(img.getScaledInstance(112,-1,Image.SCALE_SMOOTH)));

tableModel.insertRow(0, new Object[] {icon});
```

In der Tabelle wird dann kein Bild dargestellt sondern folgender Text:
javax.swing.JLabel[,5,335,1006x393,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=javax.swing.ImageIcon@15856a5,disabledIcon=,horizontalAlignment=CENTER,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=,verticalAlignment=CENTER,verticalTextPosition=CENTER]


Kann mir da jemand helfen?

Danke m voraus
Johannes


----------



## André Uhres (22. Nov 2006)

1. In die JTable kommt in diesem Fall nicht ein JLabel, sonderm ein Icon.
2. "getColumnClass" muss den richtigen Typ für die Spalte zurückgeben, in diesem Fall "Icon.class":

```
table.setModel(new DefaultTableModel(
            new Object [][] {
                {"Bild: ", new ImageIcon("c:\\img3.gif"), null, null}
            },
            new String [] {
                "Title 1", "Title 2"
            }
        ) {
            Class[] types = new Class [] {
                String.class, Icon.class
            };
            boolean[] canEdit = new boolean [] {
                true, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
```


----------



## kejo (23. Nov 2006)

Vielen Dank für die Hilfe!
Allerdings wollte ich die Bilder nicht in die Titelleiste der Tabelle, sondern in die normalen Zellen einfügen. Wie muss ich dann vorgehen?


----------



## André Uhres (23. Nov 2006)

kejo hat gesagt.:
			
		

> ...Allerdings wollte ich die Bilder nicht in die Titelleiste der Tabelle, sondern in die normalen Zellen einfügen..


Mein Beispiel macht genau das.


----------

