Inner class: Nullpointer exception
Hi,
I've implemented a custom Color CellRenderer. Now I'm using inner classes, but I get following exception:
Exception in thread "main" java.lang.NullPointerException
at puce.swing.ColorCellRenderer.access$000(ColorCellRenderer.java:12)
at puce.swing.ColorCellRenderer$1.getText(ColorCellRenderer.java:28)
at javax.swing.plaf.basic.BasicLabelUI.installComponents(BasicLabelUI.java:310)
at javax.swing.plaf.basic.BasicLabelUI.installUI(BasicLabelUI.java:255)
at javax.swing.JComponent.setUI(JComponent.java:445)
at javax.swing.JLabel.setUI(JLabel.java:238)
at javax.swing.JLabel.updateUI(JLabel.java:248)
at javax.swing.JLabel.<init>(JLabel.java:141)
at javax.swing.JLabel.<init>(JLabel.java:212)
at puce.swing.ColorCellRenderer$1.<init>(ColorCellRenderer.java:27)
at puce.swing.ColorCellRenderer.<init>(ColorCellRenderer.java:26)
at puce.swing.JXTable.init(JXTable.java:135)
at puce.swing.JXTable.<init>(JXTable.java:41)
at puce.swing.JCellTable.<init>(JCellTable.java:11)
at puce.swing.customizer.CustomizerPropertyTable.<init>(CustomizerPropertyTable.java:20)
at puce.swing.JCustomizerPropertyPane.<init>(JCustomizerPropertyPane.java:30)
at ch.datasolution.dbwizard.dbhtmleditor.TestFrame.<init>(TestFrame.java:111)
at ch.datasolution.dbwizard.dbhtmleditor.TestFrame.main(TestFrame.java:206)
Here's the code:
private Color color =null;
public ColorCellRenderer(boolean isBordered){
super();
this.isBordered = isBordered;
setOpaque(false);
setLayout(new GridLayout(1, 2));
JLabel textLabel =new JLabel(){
public String getText(){
return (color !=null) ?"[" + color.getRed() +"," + color.getGreen() +"," + color.getBlue() +"]" :"";
}
};
JLabel colorLabel =new JLabel(){
protectedvoid paintComponent(Graphics g){
super.paintComponent(g);
if (color !=null){
Rectangle innerArea = SwingUtilities.calculateInnerArea(this,null);
Color oldColor = g.getColor();
g.setColor(color);
g.fillRect(innerArea.x + innerArea.width/2 - innerArea.height/2, innerArea.y, innerArea.height, innerArea.height);
g.setColor(oldColor);
}
}
};
textLabel.setOpaque(false);
colorLabel.setOpaque(false);
add(colorLabel);
add(textLabel);
}
I don't see the problem. Can anybody help me? Thanks a lot.
Greets
Puce
PS: What is puce.swing.ColorCellRenderer.access$000(ColorCellRenderer.java:12) ?
I don't have defined a method called 'access'?

