package Darstellung;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.ListCellRenderer;
import javax.swing.border.LineBorder;
public class MeinCellRenderer extends JPanel implements ListCellRenderer<Visitenkarte> {
@Override
public Component getListCellRendererComponent(JList<? extends Visitenkarte> list, Visitenkarte value, int index,
boolean isSelected, boolean cellHasFocus) {
setPreferredSize(new Dimension(150, 80));
setBackground(Color.white);
setBorder(new LineBorder(Color.BLACK));
setLayout(null);
//Bild erzeugen un dem JPanel hinzufügen
try {
BufferedImage bild;
if(value.getBild()==null)
bild = ImageIO.read(new File("resources/dummy.png"));
else
bild = value.getBild();
Bild l = new Bild();
l.setImage(bild);
l.setLocation(10, 10);
l.setSize(60, 60);
add(l);
} catch (IOException e) {
System.err.println("Das Bild konnte nicht geladen werden.");
}
//Komponenten erzeugen
JLabel name = new JLabel(value.getName());
JLabel vorname = new JLabel(value.getVorname());
JLabel klasse = new JLabel(value.getKlasse());
JPopupMenu pop = new VisitenkartenPopupMenu();
//Eigenschaften der Komponenten
name.setLocation(80, 10);
name.setSize(70, 20);
name.setFont(name.getFont().deriveFont(10f));
vorname.setLocation(80, 30);
vorname.setSize(70,20);
vorname.setFont(vorname.getFont().deriveFont(10f));
klasse.setLocation(80, 50);
klasse.setSize(70, 20);
klasse.setFont(klasse.getFont().deriveFont(10f));
//Komponenten dem JPanel hinzufügen
add(name);
add(vorname);
add(klasse);
add(pop);
//Listener
addMouseListener(new PopupMenuMouseListener(pop));
if(isSelected){
setBackground(new Color(0,158,224, 80));
}else{
setBackground(Color.WHITE);
}
return this;
}