Ik krijg meestal wel een runtime java.lang.NullPointerException maar niet altijd. Het gaat om exact de volgende foutmelding.
Dit is een gedeelte van de source van de classe SplashScreen:
De regelnummering komt overigens niet meer overeen met die in de foutmelding. SplashScreen.java:27 is nu SplashScreen.java:7.
Hoe is het mogelijk dat deze NullPointer soms wel optreedt en soms niet? En waar wordt deze door veroorzaakt?
Oja, ik maak gebruik van JDK versie 5.0 Update 2.
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at javax.swing.MultiUIDefaults.getUIError(MultiUIDefaults.java:117) at javax.swing.UIDefaults.getUI(UIDefaults.java:719) at javax.swing.UIManager.getUI(UIManager.java:860) at javax.swing.JLabel.updateUI(JLabel.java:251) at javax.swing.JLabel.<init>(JLabel.java:140) at javax.swing.JLabel.<init>(JLabel.java:199) at SplashScreen.<init>(SplashScreen.java:27) at SplashScreen.<init>(SplashScreen.java:13) at SplashScreen$1.run(SplashScreen.java:76) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEvent(EventQueue.java:461) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149) at java.awt.EventDispatchThread.run(EventDispatchThread.java:110) |
Dit is een gedeelte van de source van de classe SplashScreen:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| import javax.swing.*; import java.awt.*; public class SplashScreen { private SplashScreen() { splashLabel = new JLabel(new ImageIcon(getClass().getClassLoader().getResource("image/plaatje.gif"))); splashLabelText = new JLabel("label"); splashLabelText.setVerticalAlignment(SwingConstants.BOTTOM); splashLabelText.setHorizontalAlignment(SwingConstants.RIGHT); splashscreen = new JWindow(); JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); panel.add(splashLabel, BorderLayout.CENTER); panel.add(splashLabelText, BorderLayout.SOUTH); splashscreen.getContentPane().add(panel); splashscreen.pack(); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); splashscreen.setLocation(screenSize.width >> 1 - splashscreen.getSize().width >> 1, screenSize.height >> 1 - splashscreen.getSize().height >> 1); } } |
De regelnummering komt overigens niet meer overeen met die in de foutmelding. SplashScreen.java:27 is nu SplashScreen.java:7.
Hoe is het mogelijk dat deze NullPointer soms wel optreedt en soms niet? En waar wordt deze door veroorzaakt?
Oja, ik maak gebruik van JDK versie 5.0 Update 2.
[ Voor 8% gewijzigd door Stephan11117 op 19-04-2005 18:06 ]