Code:
import java.awt.*;
import javax.swing.*;
public class LEDDisplay extends JComponent {
private Image zeroDigitImage;
private Image oneDigitImage;
private Image twoDigitImage;
private Image threeDigitImage;
private Image fourDigitImage;
private Image fiveDigitImage;
private Image sixDigitImage;
private Image sevenDigitImage;
private Image eightDigitImage;
private Image nineDigitImage;
private Image commaImage;
private Image displayImage;
private Image notActiveDigitImage;
public LEDDisplay() {
setComponentSettings();
initializeComponents();
build();
}
private void setComponentSettings() {
setSize(2,2);
}
private void initializeComponents() {
zeroDigitImage = new ImageIcon("images/digits/zero.gif").getImage();
oneDigitImage = new ImageIcon("images/digits/one.gif").getImage();
twoDigitImage = new ImageIcon("images/digits/two.gif").getImage();
threeDigitImage = new ImageIcon("images/digits/thre.gif").getImage();
fourDigitImage = new ImageIcon("images/digits/four.gif").getImage();
fiveDigitImage = new ImageIcon("images/digits/five.gif").getImage();
sixDigitImage = new ImageIcon("images/digits/six.gif").getImage();
sevenDigitImage = new ImageIcon("images/digits/seven.gif").getImage();
eightDigitImage = new ImageIcon("images/digits/eight.gif").getImage();
nineDigitImage = new ImageIcon("images/digits/nine.gif").getImage();
commaImage = new ImageIcon("images/digits/comma.gif").getImage();
notActiveDigitImage = new ImageIcon("images/digits/not_active.gif").getImage();
}
private void checkOffscreenImage() {
Dimension d = getSize();
if(displayImage==null||displayImage.getWidth(null)!=d.width||displayImage.getHeight(null)!=d.height) {
displayImage = createImage(d.width,d.height);
}
}
private void build() {
checkOffscreenImage();
Graphics g = displayImage.getGraphics(); // Hier kriegt ich einen NullPointer :(
for(int x=0;x<12;x++) {
g.drawImage(notActiveDigitImage,x*13,0,this);
}
g.drawImage(zeroDigitImage,169,0,this);
}
public void setDisplay(double value) {
}
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.drawImage(displayImage,0,0,this);
}
Weiß jemand warum kein Image von createImage() erzeugt wird?