2 "Sachen" implementieren
-
Hallo,
ich schreibe gerade an einem meiner ersten Java-"programme" und natürlich tritt ein Problem auf.Hier erstmal der Sourcecode:
package ballbewegen; import java.awt.*; import java.awt.event.*; import java.applet.*; public class Ball extends Applet implements Runnable { int x_pos = 200; int y_pos = 51; int ready = 0; int radius = 48; int geschwindigkeit = 10; // je größer die Zehl um so langsamer bewegt sich der Ball int xrichtung=0; int yrichtung=0; int appletsize_x = 300; int appletsize_y = 300; private Image dbImage; private Graphics dbg; Button start = new Button("START"); public void init() { setLayout(null); start.setBackground(SystemColor.black); start.setForeground(SystemColor.white); start.setBounds(120,120,160,60); this.add(start); } public void start() { Button start = new Button("START"); Thread th = new Thread (this); th.start (); } public void run () { while (true) { x_pos += xrichtung; y_pos += yrichtung; if(y_pos==51) { x_pos += 1; xrichtung=+1; yrichtung=0; } if(x_pos==301) { //y_pos += 1; xrichtung=0; yrichtung=+1; } if(y_pos==201) { x_pos-= 1; xrichtung=-1; yrichtung=0; } if(x_pos==52) { // y_pos -= 1; xrichtung=0; yrichtung=-1; } if(y_pos<51) { y_pos=51; xrichtung=0; yrichtung=0; } repaint(); try { Thread.sleep (geschwindigkeit); } catch (InterruptedException ex){} } } public void paint (Graphics g) { g.setColor (Color.black); g.drawRect (49,49,301,201); g.drawRect (100,100,200,100); g.setColor (Color.red); g.fillOval (x_pos, y_pos,radius,radius); g.setColor (Color.black); g.drawOval (x_pos, y_pos,radius,radius); } public void update (Graphics g) { // Initialisierung des DoubleBuffers if (dbImage == null) { dbImage = createImage (this.getSize().width, this.getSize().height); dbg = dbImage.getGraphics (); } // Reste aus dem Puffer löschen dbg.setColor (getBackground ()); dbg.fillRect (0, 0, this.getSize().width, this.getSize().height); // berechnetes Bild in den Puffer schreiben dbg.setColor (getForeground()); paint (dbg); // Puffer auf die Anzeige malen g.drawImage (dbImage, 0, 0, this); } }
NUn wie ihr seht verwende ich einen Thread wofür man die Runable implementieren muss.
Nun das Problem:Ich will das der Kreis sich erst bewegt wenn man auf den Boutton geklickt hat,
wofür ich aber ja auch den ActionLIstener implementieren muss.Wie kann ich also diese beiden GEschichten implementieren?
MIt nem "," oder nem "and" hats nicht funktioniert weshalb ich mit meinem LAtein am Ende war.
Danke für eure Hilfe.
Michael
-
Wie wäre es Du startest den Thread erst im EventHandler des Start Buttons?
-
ohhh neeee logisch,
der Fehler war auch nicht bei dem Komma sondern wo anders in der ActionPErformed Funktion.Danke euch trotzdem.
-
na ich weiss ja nicht wies euch geht, aber ich hab nich gleich mit nen applet angefangen meine ersten java programme zu schreiben. da kahm erst mal ne hello world usw.