1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.GridLayout;
import javax.swing.DefaultListModel;
import javax.swing.JApplet;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListCellRenderer;
import javax.swing.ListSelectionModel;
public class Main extends JApplet
{
public void init()
{
JPanel princ = new JPanel();
princ.setLayout(new BorderLayout());
DefaultListModel listModel = new DefaultListModel();
int nbComponents = 100;
for(int i=0;i<nbComponents;i++)
listModel.addElement(new Personne(i));
//Creation de la liste en mise dans un scroll.
JList list = new JList(listModel);
list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
list.setSelectedIndex(0);
list.setCellRenderer(new PersonneCellRenderer());
getContentPane().add(new JScrollPane(list));
}
class Personne
{
private int id;
public Personne(int i)
{
id=i;
}
public int getId(){return id;}
public JPanel getUI()
{
JPanel p = new JPanel();
p.setLayout(new GridLayout(2,2));
JLabel l_id = new JLabel("id="+id);
p.add(l_id);
JLabel l_ville = new JLabel("Ville de "+id);
p.add(l_ville);
JLabel l_nom = new JLabel("Nom de "+id);
p.add(l_nom);
JLabel l_prenom = new JLabel("Prénom de "+id);
p.add(l_prenom);
return p;
}
}
class PersonneCellRenderer implements ListCellRenderer
{
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
{
return ((Personne)value).getUI();
}
}
} |