Code:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Design extends JFrame {
/** Creates a new instance of Design */
public Design() {
super("Aquarium Planer");
getContentPane().setLayout(new GridLayout(2,1));
JPanel oben = new JPanel();
JPanel unten = new JPanel();
Becken becken = new Becken();
unten.setLayout(new GridLayout(1,1));
unten.add(becken);
Fisch fisch = new Fisch(becken);
fisch.start();
getContentPane().add(oben);
getContentPane().add(unten);
setLocation((Toolkit.getDefaultToolkit().getScreenSize().width-getSize().width)/5 ,
(Toolkit.getDefaultToolkit().getScreenSize().height-getSize().height)/5 );
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(320,240);
setVisible(true);
setResizable(false);
}
public static void main(String[] args){
Design start = new Design();
}
}
import java.awt.*;
public class Becken extends Canvas {
public Becken() {
setBackground(Color.blue);
setForeground(Color.green);
}
public void paint(Graphics g){
super.paint(g);
g.setColor(Color.black);
g.fillRect(-1,95,315,10);
}
}
import java.awt.*;
public class Fisch extends Thread {
Canvas c;
public Fisch(Canvas c) {
this.c=c;
}
public void run(){
bewegen();
while(isInterrupted() == false){
bewegen();
try {
sleep(1000);
}
catch(InterruptedException e){return;}
}
}
void bewegen(){
anzeigen();
}
void anzeigen(){
Graphics g = c.getGraphics();
g.setColor(Color.green);
g.fillOval(70,60,20,20);
g.dispose();
}
}
Habe in der Methode anzeigen() eine NullPointerException !
Verstehe nicht warum. Anscheinend übergibt er die Class becken nicht!
die Methode wird doch nicht eher gestartet als Becken initialisiert wird!?!