Hallo,
ich hab versucht in meine JTable Bilder einzufügen. Habe mir im Internet folgenden Code zusammengesetzt,welcher in jeder Zeile ein eigenes Bild anzeigen soll. Aber kann mir keinen Reim drauf machen warum es nicht funktioniert könnt Ihr helfen?
die Table
der Renderer
ich hab versucht in meine JTable Bilder einzufügen. Habe mir im Internet folgenden Code zusammengesetzt,welcher in jeder Zeile ein eigenes Bild anzeigen soll. Aber kann mir keinen Reim drauf machen warum es nicht funktioniert könnt Ihr helfen?
die Table
Java:
package View;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import Model.MyRenderer;
public class ChartsTabelle {
public ChartsTabelle(JFrame seite){
//ChartsTabelle
ImageIcon icon = new ImageIcon("/home/phern/workspace/IloveMusic/jpg/helene.jpg");
//ImageIcon icon = createImageIcon("/home/phern/workspace/IloveMusic/jpg/helene.jpg", "ff");
// Die Daten für das Table
Object[][] data = new Object[][]{
{"1", "The Hanging Tree", "James Newton Howard feat. Jennifer Lawrence", },
{"2", "Outside (feat. Ellie Goulding)", "Calvin Harris", icon},
{"3", "Walk", "Kwabs", icon},
{"4","Uptown Funk","Bruno Mars & Mark Ronson",},
{"5","I'm An Albatraoz","AronChupa",},
{"6","Dangerous (feat. Sam Martin)","David Guetta",},
{"7","Break The Rules","Charli XCX",},
{"8","Take Me To Church","Hozier",},
{"9","Auf anderen Wegen","Andreas Bourani",},
{"10","Blank Space","Taylor Swift",},
{"11","Flash mich","Mark Forster",},
{"12","Real Love","Clean Bandit",}
};
// Die Column-Titles
String[] title = new String[]{
"Nummerierung", "Musiktitel", "Artist", "Cover"
};
// Das JTable initialisieren
DefaultTableModel model = new DefaultTableModel(data, title);
JTable table = new JTable( model );
//Größe der Spalten setzen
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.getColumn( "Nummerierung" ).setPreferredWidth( 100 );
table.getColumn( "Musiktitel" ).setPreferredWidth( 200 );
table.getColumn( "Artist" ).setPreferredWidth( 200 );
table.getColumn( "Cover" ).setPreferredWidth( 100 );
table.setPreferredScrollableViewportSize(table.getPreferredSize());
table.getTableCellRendererComponent(table,new ImageIcon("/home/phern/workspace/IloveMusic/jpg/helene.jpg"), 1,4);
table.getColumnModel().getColumn(3).setCellRenderer(new MyRenderer());
//hier die Spaltennummer für den Renderer setzen. 2 bedeutet, MyRenderer (der das Icon zeichnet) für die 3. Spalte (0 => 1. Spalte)
seite.getContentPane().add( new JScrollPane( table) ).setBounds(0, 150, 600, 500);
}
}
der Renderer
Java:
package Model;
import java.awt.Component;
import javax.swing.ImageIcon;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
public class MyRenderer extends DefaultTableCellRenderer implements TableCellRenderer
{
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column)
{
setIcon(new ImageIcon("/home/phern/workspace/3Abgabe/src/View/bilder/helene.jpg"));
//***
return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
}
}