Hallo,
ich habe ein Problem mit der Reaktion des Scrollpane's bei einer JList. Die JList ist in ein JScrollPane eingebettet. Ich habe mir meinen eigenen ListRenderer geschrieben, damit ein Icon und der Name angezeigt werden können.
Ich habe ein Element das einen sehr langen Namen hat und über den rechten Rand der jList hinausreicht. Das Problem ist, dass der Scrollbar darauf nicht reagiert. D.h. ich kann nicht ans Ende des Namens scrollen.
Mir sind die Ideen ausgegangen, vllt. habt ihr ja eine.
ListRenderer:
JScrollPane Init:
JList Init:
Dank für jede Hilfe.
Gruß Whitey
ich habe ein Problem mit der Reaktion des Scrollpane's bei einer JList. Die JList ist in ein JScrollPane eingebettet. Ich habe mir meinen eigenen ListRenderer geschrieben, damit ein Icon und der Name angezeigt werden können.
Ich habe ein Element das einen sehr langen Namen hat und über den rechten Rand der jList hinausreicht. Das Problem ist, dass der Scrollbar darauf nicht reagiert. D.h. ich kann nicht ans Ende des Namens scrollen.
Mir sind die Ideen ausgegangen, vllt. habt ihr ja eine.
ListRenderer:
Code:
public class ListRenderer extends DefaultListCellRenderer {
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected,
boolean cellHasFocus) {
JLabel nameLabel=new JLabel();
JPanel panel=new JPanel();
JLabel iconLabel=new JLabel();
panel.setBackground(new Color(185,185,185));
iconLabel.setIcon(new ImageIcon(this.getClass().getResource(Resource.getResource("ListRenderer.ImageIcon"))));
Images image = (Images)value;
String imageSizeName = CalculateSize.checkSize(image.getSize());
int imageSize = CalculateSize.getExtension().intValue();
nameLabel.setText(image.getName()+" Size: "+imageSize+" "+imageSizeName);
if(image.getStatus()==1){
nameLabel.setForeground(new Color(208,208,208));
}
else
nameLabel.setForeground(new Color(255,255,255));
panel.setLayout(new BorderLayout());
panel.add(iconLabel,BorderLayout.WEST);
panel.add(nameLabel,BorderLayout.CENTER);
panel.setSize((iconLabel.getPreferredSize().width)+(nameLabel.getPreferredSize().width),17);
setComponentOrientation(list.getComponentOrientation());
return panel;
}
}
JScrollPane Init:
Code:
private JScrollPane getSpImages() {
if (spImages == null) {
spImages = new JScrollPane();
spImages.setViewportView(getListImages());
spImages.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
spImages.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
}
return spImages;
}
JList Init:
Code:
private JList getListImages() {
if (listImages == null) {
listImages = new JList(listModel);
listImages.setPreferredSize(new Dimension(200, 200));
listImages.setBackground(new Color(108,108,108));
listImages.setForeground(Color.white);
listImages.setFont(new Font("Tahoma", Font.PLAIN, 12));
}
return listImages;
Dank für jede Hilfe.
Gruß Whitey