Dieser ListCellRenderer soll die Einträge einer JList unterschiedlich einfärben:
Die Klasse "Karte" enthält alle auf Instanzen dieser Klasse verwendeten Methoden.
Jetzt mein Problem:
Beim Ausführten kommt folgende Exception:
Ich hab keine Ahnung wodran das liegen könnte, und nach mehreren Stunden Fehlersuche wollte ich dann lieber mal hier fragen.
Danke für eure Antworten!
Java:
class MainCellRenderer extends JLabel implements ListCellRenderer {
public Component getListCellRendererComponent(
JList list, // the list
Object value, // value to display
int index, // cell index
boolean isSelected, // is the cell selected
boolean cellHasFocus) // does the cell have focus
{
Karte karte;
karte = (Karte)value;
if(value != null) {
if (isSelected) {
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
} else {
switch(karte.getType()) {
case "Ausruestung": setBackground(new Color(211, 211, 211));
break;
case "Kreatur": setBackground(new Color(222, 184, 135));
break;
case "Beschwörung": setBackground(new Color(240, 255, 240));
break;
case "Formel": setBackground(new Color(230, 230, 250));
break;
case "Verzauberung": setBackground(new Color(255, 228 ,196));
break;
case "Angriff": setBackground(new Color(255, 228, 255));
break;
default: setBackground(Color.white);
break;
}
}
}
setText(karte.getName());
setEnabled(list.isEnabled());
setFont(list.getFont());
setOpaque(true);
return this;
}
}
Die Klasse "Karte" enthält alle auf Instanzen dieser Klasse verwendeten Methoden.
Jetzt mein Problem:
Beim Ausführten kommt folgende Exception:
Code:
Exception in thread "main" java.lang.NullPointerException
at MainCellRenderer.getListCellRendererComponent(GUI.java:246)
at javax.swing.plaf.basic.BasicListUI.updateLayoutState(Unknown Source)
at javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(Unknown Source)
at javax.swing.plaf.basic.BasicListUI.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at javax.swing.JList.getPreferredScrollableViewportSize(Unknown Source)
at javax.swing.ViewportLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at javax.swing.ScrollPaneLayout.preferredLayoutSize(Unknown Source)
at java.awt.Container.preferredSize(Unknown Source)
at java.awt.Container.getPreferredSize(Unknown Source)
at javax.swing.JComponent.getPreferredSize(Unknown Source)
at java.awt.FlowLayout.layoutContainer(Unknown Source)
at java.awt.Container.layout(Unknown Source)
at java.awt.Container.doLayout(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validateTree(Unknown Source)
at java.awt.Container.validate(Unknown Source)
at java.awt.Container.validateUnconditionally(Unknown Source)
at java.awt.Window.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at GUI.main(GUI.java:368)
Ich hab keine Ahnung wodran das liegen könnte, und nach mehreren Stunden Fehlersuche wollte ich dann lieber mal hier fragen.
Danke für eure Antworten!