problem in showing multiple columns and rows in horizontal wrap as like as
I am trying to implement the ListView in my application as like as in windows.
But i am able to show single row bythis code snippet.
What should ido to show the multiple row ,multiple coloumns in JList.
import javax.swing.*;
import java.awt.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
publicclass JListExampleextends JFrame
{
privateclass Value
{
Value(String value, Icon image)
{
this.value = value;
this.image = image;
}
String value;
Icon image;
}
private Icon getIcon(String name)
{
returnnew ImageIcon(name);
}
public JListExample()
{
super("Simple JList Example");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final Value[] VALUES =
{
new Value("the road", getIcon("10.jpg")),
new Value("trees", getIcon("11.jpg")),
new Value("stooges", getIcon("12.jpg")),
new Value("bauld tires", getIcon("13.jpg")),
new Value("bvot tires", getIcon("14.jpg")),
new Value("volt tires", getIcon("15.jpg")),
new Value("send tires", getIcon("17.jpg")),
};
JList list =new JList(VALUES);
list.setLayoutOrientation(JList.HORIZONTAL_WRAP);
list.setVisibleRowCount(1);
list.setCellRenderer(new SimpleCellRenderer());
list.addListSelectionListener(new ListSelectionListener(){
publicvoid valueChanged(ListSelectionEvent evt){
if (evt.getValueIsAdjusting())
return;
System.out.println("Selected from " + evt.getFirstIndex()
+" to " + evt.getLastIndex());
}
});
JScrollPane ListViewer =new JScrollPane(list);
getContentPane().add(ListViewer);
setBounds(0,0,600,600);
//pack();
}
publicstaticvoid main(String[] args)
{
try
{
new JListExample().setVisible(true);
}
catch (Exception e)
{
e.printStackTrace(System.out);
}
}
class SimpleCellRendererextends JLabelimplements ListCellRenderer
{
public SimpleCellRenderer()
{
setOpaque(true);
}
public Component getListCellRendererComponent(JList list, Object value,int index,boolean isSelected,boolean cellHasFocus)
{
Value val = (Value)value;
setText(val.value);
setIcon(val.image);
//setBackground(isSelected ? Color.red : (index & 1) ==0 ?Color.cyan : Color.green);
//setForeground(isSelected ? Color.white : Color.black);
returnthis;
}
}
}
[code]
[/code]

