Hallo,
ich habe vor ein kleines Spiel zu programmieren. Derzeit habe ich aber noch Probleme mit der paint-Funktion, ich möchte die Position eines Kreises beim Drücken eines Buttons verändern (in diesem Fall nur nach oben), dieser wird aber nicht neu gezeichnet - er bleibt einfach dort wo er am Anfang war.
MyGUI.java
Ball.java
Ich würde mich sehr freuen wenn mir jemand behilflich sein könnte!
mfg
kabellutscher
ich habe vor ein kleines Spiel zu programmieren. Derzeit habe ich aber noch Probleme mit der paint-Funktion, ich möchte die Position eines Kreises beim Drücken eines Buttons verändern (in diesem Fall nur nach oben), dieser wird aber nicht neu gezeichnet - er bleibt einfach dort wo er am Anfang war.
MyGUI.java
Java:
mport java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
public class MyGUI extends JFrame implements ActionListener{
public static final int WIDTH = 200;
public static final int HEIGHT = 250;
public static final int X_OFFSET = 1;
public static final int Y_OFFSET = 70;
int posx, posy;
Button btn = new Button("up");
Ball b;
public MyGUI(){
super("Balls");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
posx = X_OFFSET;
posy = Y_OFFSET;
btn.addActionListener(this);
b = new Ball(posx, posy, WIDTH, HEIGHT);
add(btn, BorderLayout.NORTH);
add(b, BorderLayout.CENTER);
this.setSize(WIDTH, HEIGHT);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == btn){
System.out.println("up");
posx++;
add(new Ball(posx, posy, WIDTH, HEIGHT));
repaint();
}
System.out.println("geht");
}
}
class GUI{
public static void main(String[] args){
MyGUI g = new MyGUI();
g.setVisible(true);
}
}
Ball.java
Java:
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;
public class Ball extends JPanel{
int posx;
int posy;
int width, height;
Graphics2D g = null;
public Ball(int posx, int posy, int width, int height){
this.posx = posx;
this.posy = posy;
this.width = width;
this.height = height;
System.out.println("Konstruktor");
}
public void paint(Graphics g){
System.out.println("Zeichnerei");
g.drawOval(posx, height - posy, 10, 10);
}
}
Ich würde mich sehr freuen wenn mir jemand behilflich sein könnte!
mfg
kabellutscher