Hallo Zusammen
Ich lese mich gerade ins Thema über Moving Objects in Java ein aber hab da so meine Mühe. Und zwar möchte ich auf einem JFrame mehrer Punkte gleichzeitig bewegen lassen. Was ich bis jetzt geschafft habe, ist ein Punkt zu zeichnen aber er bewegt sich noch nicht. Ich weiss nun auch dass ich diesen Prozess "bewegen" in einen Thread auslagern kann, da ich mehrere Punkte gleichzeitig möchte muss ich Threads mit Runnable erzeugen. Das Problem ist nur ich habe keine Ahnung wie ich da vorgehen muss. Ich habe mir auch schon etliche Beiträge durchgelesen und Videos angeschaut aber ich kann es auf mein Beispiel nicht anwenden. Mein Programm sieht bis jetzt folgendermassen aus:
*******************************************
************************************
Ich weiss jetzt auch dass ich mit der run-Methode weiterfahren muss, aber wie schaff ich es, dass es mir den Punkt auf dem JFrame neu zeichnet?
Besten Dank für hilfreiche Rückmeldungen
Ich lese mich gerade ins Thema über Moving Objects in Java ein aber hab da so meine Mühe. Und zwar möchte ich auf einem JFrame mehrer Punkte gleichzeitig bewegen lassen. Was ich bis jetzt geschafft habe, ist ein Punkt zu zeichnen aber er bewegt sich noch nicht. Ich weiss nun auch dass ich diesen Prozess "bewegen" in einen Thread auslagern kann, da ich mehrere Punkte gleichzeitig möchte muss ich Threads mit Runnable erzeugen. Das Problem ist nur ich habe keine Ahnung wie ich da vorgehen muss. Ich habe mir auch schon etliche Beiträge durchgelesen und Videos angeschaut aber ich kann es auf mein Beispiel nicht anwenden. Mein Programm sieht bis jetzt folgendermassen aus:
Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Main extends JFrame implements ActionListener{
//Attribute
public int y = 60;
public Main() {
super("Charge!");
setSize(500,500);
setVisible(true);
// set Layout
this.setLayout(new BorderLayout());
JButton button = new JButton("add");
add(button,BorderLayout.NORTH);
button.addActionListener(this);
//exit
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
//Main
public static void main(String[] args) {
Main m = new Main();
}
public void paint (Graphics g) {
g.clearRect(0, 0, 400, 400);
g.setColor(Color.red);
g.fillOval(y, y, 10, 10);
}
@Override
public void actionPerformed(ActionEvent arg0) {
Move m = new Move(this);
new Thread(m).start();
}
}
*******************************************
Java:
public class Move implements Runnable{
//Attribute
Main myM;
public Move(Main m) {
this.myM = m;
}
@Override
public void run() {
}
}
************************************
Ich weiss jetzt auch dass ich mit der run-Methode weiterfahren muss, aber wie schaff ich es, dass es mir den Punkt auf dem JFrame neu zeichnet?
Besten Dank für hilfreiche Rückmeldungen
Zuletzt bearbeitet: