Hallo!
Ich habe ein blödes Problem, dass ich absolut nicht nachvollziehen kann:
Ich habe zwei Klassen geschrieben ( die beide von der gleichen Superklasse erben): Eine, die ein Icon mit Hilfe
eines MediaTrackers lädt und anzeigt und eine andere, die einen Button darstellen soll.
Die erste klappt wiunderbar, bei der zweiten tritt eine NullPointerException auf, wenn auf "scene" aus der Superklasse
zugegriffen werden soll?? Es muss etwas mit dem MediaTracker zu tun haben glaube ich.. Die Klasse, die einen hat funktioniert ja einwandfrei..Ausserdem klappt sogar auch die Icon-Klasse nicht, wenn ich den Thread weglasse und verursacht ebenfalls einen NullPointer...Kann mir bitte jemand weiterhelfen?
Hier ist die icon-Klasse (die geht):
Hier die Button-Klasse, die einen NullPointer verursacht:
Vielen Dank für Eure Mühe,
Gruß,
Alex.
P.S.:
Dies ist meine SuperKlasse:
Ich habe ein blödes Problem, dass ich absolut nicht nachvollziehen kann:
Ich habe zwei Klassen geschrieben ( die beide von der gleichen Superklasse erben): Eine, die ein Icon mit Hilfe
eines MediaTrackers lädt und anzeigt und eine andere, die einen Button darstellen soll.
Die erste klappt wiunderbar, bei der zweiten tritt eine NullPointerException auf, wenn auf "scene" aus der Superklasse
zugegriffen werden soll?? Es muss etwas mit dem MediaTracker zu tun haben glaube ich.. Die Klasse, die einen hat funktioniert ja einwandfrei..Ausserdem klappt sogar auch die Icon-Klasse nicht, wenn ich den Thread weglasse und verursacht ebenfalls einen NullPointer...Kann mir bitte jemand weiterhelfen?
Hier ist die icon-Klasse (die geht):
Code:
public class Icon extends Scene implements Runnable{
...
public Icon() {
myWorkerThread = new Thread(this);
myWorkerThread.start();
}
public void display() {
MediaTracker tracker = new MediaTracker(this);
pic = Toolkit.getDefaultToolkit().getImage("AlphaGrafik.png");
tracker.addImage(pic, 0);
try{
tracker.waitForAll();
}
catch(InterruptedException e) {
}
hContainer1 = new HContainer(0,0,720,576);
icon = new HStaticIcon(pic, 0, 0, 720, 576);
hContainer1.add(icon);
//WIRD IN DER SUPERKLASSE INSTANZIERT
scene.add(hContainer1);
scene.setVisible(true);
}
public void run() {
display();
}
}
Code:
public class MHPTest_1 extends Scene implements Runnable{
private Thread myWorkerThread;
private HContainer hContainer1;
private HTextButton button;
private Image pic;
public MHPTest_1() {
myWorkerThread = new Thread(this);
myWorkerThread.start();
}
public void display(){
hContainer1 = new HContainer(0,0,720,576);
button = new HTextButton();
button.setBounds(70, 80, 100, 50);
hContainer1.add(button);
//HIER DIE NULLPOINTEREXCEPTION!!!
scene.add(hContainer1);
scene.setVisible(true);
}
public void run() {
display();
}
}
Gruß,
Alex.
P.S.:
Dies ist meine SuperKlasse:
Code:
XletContext context;
HSceneTemplate hst = new HSceneTemplate();
HSceneFactory factory = HSceneFactory.getInstance();
HBackgroundConfigTemplate hbct = new HBackgroundConfigTemplate();
HScreen screen = HScreen.getDefaultHScreen();
HBackgroundDevice backdevice = screen.getDefaultHBackgroundDevice();
HStillImageBackgroundConfiguration stillimagebackconfig;
HBackgroundConfiguration stillbackconfig = backdevice.getBestConfiguration(hbct);
//DAS PROBLEMKIND:
HScene scene;
public Szene()
{
}
public void initXlet(XletContext context)
throws XletStateChangeException
{
this.context = context;
hst.setPreference(
HSceneTemplate.SCENE_SCREEN_DIMENSION,
new org.havi.ui.HScreenDimension(1,1),
HSceneTemplate.REQUIRED);
hst.setPreference(
HSceneTemplate.SCENE_SCREEN_LOCATION,
new org.havi.ui.HScreenPoint(0,0),
HSceneTemplate.REQUIRED);
hbct.setPreference(
HBackgroundConfigTemplate.STILL_IMAGE,
HBackgroundConfigTemplate.REQUIRED);
hbct.setPreference(
HBackgroundConfigTemplate.FLICKER_FILTERING,
HBackgroundConfigTemplate.REQUIRED_NOT);
}
public void startXlet()
throws XletStateChangeException
{
//HIER WIRD ES INSTANZIERT:
scene = factory.getBestScene(hst);
}
}