halllöchen,
hab ganz brav die suchfunktion gefunden und diesen thread hier gefunden:
http://www.java-forum.org/de/forums/viewtopic.php?t=2232
allerdings versteh ich den code ned ganz und krieg dementsprechend fehler (nullpointer exception).
hier mal mein code:
wie man sieht bis auf das "myFile" ziemlich gleich wie der code vom anderen topic
.
hier meine "myFile" klasse:
in der JList haben ich daten vom klassentyp File (wie man am code wohl auch merkt
). ich weiss aber nicht, ob ich den renderer ganz verstehe, bzw. seine argumente. das erste ist wohl die list um dies geht. das 2. dann das jeweilige listen-elemente (bei mir file-objekte), das 3. argument der index des entsprechenden objekts und danach werte ob's selektiert bzw. den focus hat, richtig so?
der cellrenderer selber verändert aber nix an den typen meiner daten oder? also aus meinen file-objekten in der liste werden keine myFile - objekte? das myFile brauch ich ja eigentlich nur um ein icon auszulesen...
hat jmd ne idee wodurch der fehler entsteht? wie gesagt, ich weiss nicht ob ich überhaupt alles richtig verstanden habe. aber könnte es sein, dass bei "getSystemIcon" n mist (bzw. null) rauskommt wenn das file n directory ist? aber dafür sollte es ja eigentlich auch n icon geben... sonst wärs n bisl blöd... *g*
hab ganz brav die suchfunktion gefunden und diesen thread hier gefunden:
http://www.java-forum.org/de/forums/viewtopic.php?t=2232
allerdings versteh ich den code ned ganz und krieg dementsprechend fehler (nullpointer exception).
hier mal mein code:
Code:
package fileNameGenerator;
import javax.swing.*;
//import java.awt.Font;
import java.awt.*;
public class MyListCellRenderer extends JCheckBox implements ListCellRenderer{
public Component getListCellRendererComponent(JList list,
Object value, int index, boolean isSelected, boolean cellHasFocus)
{
//je nach Selektion die Farbe setzen
setBackground(isSelected ? list.getSelectionBackground() : list.getBackground());
setForeground(isSelected ? list.getSelectionForeground() : list.getForeground());
try{
myFile obj = new myFile((File)value); <-- dadurch wird die excpetion wohl "verursacht" //MyObjekt ist der Container für einen User in Deinem Fall
setText(obj.getText()); //der Text der in der Liste angezeigt werden soll
Icon i = obj.getIcon(); //das zu setzende Icon...
this.setIcon(i); //...wird hier gesetzt
}
catch(Exception ex){
ex.printStackTrace();
}
setFont(list.getFont());
setBorder(UIManager.getBorder("List.focusCellHighlightBorder"));
return this;
}
}
wie man sieht bis auf das "myFile" ziemlich gleich wie der code vom anderen topic
hier meine "myFile" klasse:
Code:
package fileNameGenerator;
import javax.swing.*;
//import java.awt.Font;
import java.awt.*;
import java.io.*;
import javax.swing.filechooser.FileSystemView;
public class myFile
{
private Icon icon = null;
private String text = "";
private FileSystemView system;
public myFile (File f)
{
text = f.getName();
icon = system.getSystemIcon(f); <-- hier ist mein nullpointer-exception
}
public void setIcon(Icon aIcon)
{
icon = aIcon;
}
public Icon getIcon()
{
return icon;
}
public void setText(String aText)
{
text = aText;
}
public String getText()
{
return text;
}
public String toString()
{
return text;
}
}
in der JList haben ich daten vom klassentyp File (wie man am code wohl auch merkt
der cellrenderer selber verändert aber nix an den typen meiner daten oder? also aus meinen file-objekten in der liste werden keine myFile - objekte? das myFile brauch ich ja eigentlich nur um ein icon auszulesen...
hat jmd ne idee wodurch der fehler entsteht? wie gesagt, ich weiss nicht ob ich überhaupt alles richtig verstanden habe. aber könnte es sein, dass bei "getSystemIcon" n mist (bzw. null) rauskommt wenn das file n directory ist? aber dafür sollte es ja eigentlich auch n icon geben... sonst wärs n bisl blöd... *g*