Originariamente inviato da lordkarolus
ho una jlist e dovrei inserire un'immagine prima del testo come posso fare?
Prova questo codice:
codice:
import java.awt.*;
import java.net.*;
import javax.swing.*;
public class TestFrame extends JFrame
{
public TestFrame ()
{
super ("Test Frame");
try {
ImageIcon icon1 = new ImageIcon (new URL ("http://img517.imageshack.us/img517/2383/gattominirq3.jpg"));
ImageIcon icon2 = new ImageIcon (new URL ("http://img517.imageshack.us/img517/7184/schedcanedr6.jpg"));
JLabel[] labels = { new JLabel ("Un gatto", icon1, SwingConstants.LEFT),
new JLabel ("Un cane", icon2, SwingConstants.LEFT) };
JList list = new JList (labels);
list.setCellRenderer (new MyListCellRenderer ());
JScrollPane scrollPane = new JScrollPane (list);
add (scrollPane);
} catch (MalformedURLException e) { }
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
setSize (300, 300);
}
public static void main (String[] args)
{
SwingUtilities.invokeLater (new Runnable()
{
public void run ()
{
TestFrame f = new TestFrame ();
f.setVisible (true);
}
});
}
}
class MyListCellRenderer implements ListCellRenderer
{
public Component getListCellRendererComponent (JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
{
JLabel label = (JLabel) value;
if (isSelected)
{
label.setBackground (list.getSelectionBackground ());
label.setForeground (list.getSelectionForeground ());
}
else
{
label.setBackground (list.getBackground ());
label.setForeground (list.getForeground ());
}
label.setEnabled (list.isEnabled ());
label.setOpaque (true);
return label;
}
}