Teufelslama
Grünschnabel
Hallo.
Folgender Aufruf in der Klasse ImageViewerUI
Die Klasse AnalyseFunktionen (gehört zum gleichen Paket) sieht wie folgt aus:
Wenn ich das aufrufe bekomme ich bei analyseFunktionen.fillKhachiyanRed aber immer eine NullPointerException
Exception in thread "main" java.lang.NullPointerException
at redeyereduction.ImageViewerUI.<init>(ImageViewerUI.java:40)
at redeyereduction.ImageViewerUI.main(ImageViewerUI.java:46)
Wenn ich die Funktionen, die für fill nötig sind aber in den analyseHandler packe (implementiert ActionListener), dann funktioniert alles wunderbar.
WARUM?
Hoffe es kann mir da wer weiterhelfen!
Das Lama
Folgender Aufruf in der Klasse ImageViewerUI
Code:
public ImageViewerUI() {
initializeComponents();
createMenu();
createFrame();
analyseFunktionen.fillKhachiyanRed();
dateiHandler.loadImageAtStartup();
}
Die Klasse AnalyseFunktionen (gehört zum gleichen Paket) sieht wie folgt aus:
Code:
import java.awt.image.BufferedImage;
public class AnalyseFunktionen {
private int r;
private int g;
private int b;
private ImageComponent viewComponent;
public AnalyseFunktionen(ImageComponent viewComponent) {
this.viewComponent = viewComponent;
}
protected void redMask(ImageComponent viewComp) {
...
}
protected void fillKhachiyanRed() {
int rgb;
int khachiyan;
boolean[] khachiyanRed;
khachiyanRed = new boolean[DatenLookup.MAX_RGB_COLOR];
for (rgb = 0; rgb < DatenLookup.MAX_RGB_COLOR; rgb++) {
khachiyan = khachiyanAlgoRed(rgb);
if (khachiyan < DatenLookup.KHACHIYAN_RED_BOUND) {
khachiyanRed[rgb] = true;
}
else {
khachiyanRed[rgb] = false;
}
}
DatenLookup.khachiyanRed = khachiyanRed;
}
private int khachiyanAlgoRed(int pixel) {
int redC;
int greenC;
int blueC;
int matARed; //Matrix A
int matAGreen;
int matABlue;
int khachiyan;
getRGB(pixel);
redC = r - 166;
greenC = g - 43;
blueC = b - 59;
matARed = 1471 * redC - 2205 * greenC + 674 * blueC;
matAGreen = -2205 * redC + 6878 * greenC - 1966 * blueC;
matABlue = 674 * redC - 1966 * greenC + 4332 * blueC;
khachiyan = redC * matARed + greenC * matAGreen + blueC * matABlue;
return khachiyan;
}
private void getRGB(int rgb) {
r = (rgb >> 16) & 255;
g = (rgb >> 8) & 255;
b = rgb & 255;
}
}
Wenn ich das aufrufe bekomme ich bei analyseFunktionen.fillKhachiyanRed aber immer eine NullPointerException
Exception in thread "main" java.lang.NullPointerException
at redeyereduction.ImageViewerUI.<init>(ImageViewerUI.java:40)
at redeyereduction.ImageViewerUI.main(ImageViewerUI.java:46)
Wenn ich die Funktionen, die für fill nötig sind aber in den analyseHandler packe (implementiert ActionListener), dann funktioniert alles wunderbar.
WARUM?
Hoffe es kann mir da wer weiterhelfen!
Das Lama