public class PartitionPanel extends JPanel implements ListSelectionListener
{
/**
*
*/
private static final long serialVersionUID = 5644880888990624676L;
public static JList partochs;
public JScrollPane scrollPane;
public Vector listeItems;
public PartitionPanel()
{
listeItems = new Vector();
listeItems.addElement(new JPanel());
listeItems.addElement(new JPanel());
setLayout(new BorderLayout());
partochs = new JList(listeItems);
partochs.setSelectedIndex(0);
partochs.addListSelectionListener(this);
scrollPane = new JScrollPane(partochs);
add(scrollPane, BorderLayout.CENTER);
}
public void valueChanged(ListSelectionEvent e)
{
// TODO Auto-generated method stub
}
}
Lorsque je compile et excute code, le JScrollPäne s affiche mais j'ai des lignes d'erreurs qui apparaissent pour chaque JPanel de ma JList.
Erreur: "javax.swing.JPanel[,0,0,0x0,invalid,layout=java.awt.FlowLayout,alignmentX..."
indiana_jules
Messages postés750Date d'inscriptionmardi 9 mars 2004StatutMembreDernière intervention23 décembre 200822 4 janv. 2007 à 12:38
Salut,
j'avais fait la m^me chose, mais avec des JLabel, JCheckBox. Il faut bien penser à définir un renderer particulier.
Par exemple:
private class JChekBoxListRenderer extends JCheckBox implements ListCellRenderer {
//Constante de sérialisation
private static final long serialVersionUID = 1L;
public class PartitionPanel extends JPanel implements ListSelectionListener, MouseListener
{
private static final long serialVersionUID = 5644880888990624676L;
public static JList partochs;
public JScrollPane scrollPane;
public Vector<FeuillePartition> listeItems;
public PartitionPanel()
{
super(new BorderLayout());
listeItems = new Vector<FeuillePartition>();
listeItems.addElement(new FeuillePartition());
//listeItems.addElement(new FeuillePartition());
partochs = new JList(listeItems);
partochs.setSelectedIndex(0);
JListRenderer renderer = new JListRenderer();
partochs.setCellRenderer(renderer);
partochs.addMouseListener(this);
partochs.addListSelectionListener(this);
scrollPane = new JScrollPane(partochs);
add(scrollPane, BorderLayout.CENTER);
}
public void valueChanged(ListSelectionEvent e)
{
}
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent e)
{
((FeuillePartition)partochs.getSelectedValue()).mousePressed(e);
}
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}
class JListRenderer implements ListCellRenderer
{
public Component component;
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
{
component = (Component)value;
if(isSelected)
{
public class PartitionPanel extends JPanel implements ListSelectionListener
{
public static JList partochs;
public JScrollPane scrollPane;
public Vector<FeuillePartition> listeItems;
public PartitionPanel()
{
super(new BorderLayout());
listeItems = new Vector<FeuillePartition>();
listeItems.addElement(new FeuillePartition());
//listeItems.addElement(new FeuillePartition());
partochs = new JList(listeItems);
partochs.setSelectedIndex(0);
JListRenderer renderer = new JListRenderer();
partochs.setCellRenderer(renderer);
partochs.addListSelectionListener(this);
scrollPane = new JScrollPane(partochs);
add(scrollPane, BorderLayout.CENTER);
}
public void valueChanged(ListSelectionEvent e)
{
}
}
class JListRenderer implements ListCellRenderer
{
public Component component;
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
{
component = (Component)value;
if(isSelected)
{
}
return component;
}
}
Il me reste un dernier soucis, chaque FeuillePartition implement les Listener MouseListener, MouseMotionListener.
Or depuis que c'est dans une JList ca ne fonctionne plus