Kreis mit neuer Position zeichnen

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
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
 

nrg

Top Contributor
du erstellst ja immer einen neuen ball. würde erstmal die Attribute in der Klasse Ball kapseln. Dann eine Setter für x und y schreiben. Bei deinem Buttonevent für Up dann die setY aufrufen und Y inkrementieren. dann sollte das auch klappen. (habs kurz getestet)

edit: das mit der Kapselung wäre nur stilgerecht (zumindest für mein empfinden). Anhand von deinem Code tuts auch eine Änderung der beiden Zeilen:

Java:
            b.posy++;
            //add(new Ball(posx, posy, WIDTH, HEIGHT)); -> kann raus
 
Zuletzt bearbeitet:

eRaaaa

Top Contributor
>DU müsstest wahrscheinlich nach/vor repaint() ein validate() aufrufen, aber
wieso willst du ein neues JPanel adden? Definiere doch einfach in deinem aktuellen JPanel(Ball) einige Setter-Methoden die du dann in der actionPerformed aufrufst.

Irgendwie so zum Beispiel:
Java:
    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource() == btn){
            System.out.println("up");
            b.setPosy(posy+=100); //wieso eig. x verändern wenns nach oben gehen soll? ;>
            repaint();
        }
        System.out.println("geht");    
    }

in Ball halt jetzt ein Setter setPosy. Des weiteren ist`s besser die paintComponent zu überschreiben anstelle paint.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
YAZZ BlueJ Bewegung einer Figur im Kreis Java Basics - Anfänger-Themen 4
J Kreis soll die gleiche Fläche wie das Rechteck haben wie mache ich das? Java Basics - Anfänger-Themen 3
N Kreismuster auf Bestehendem Kreis erstellen Java Basics - Anfänger-Themen 10
E Kreis soll eine Raupe darstellen Java Basics - Anfänger-Themen 37
C Kleinsten Kreis einer Punktmenge bestimmen Java Basics - Anfänger-Themen 4
CptK Interface Kleine Kreise in großem Kreis anordnen Java Basics - Anfänger-Themen 3
Y Kreis auf einer Kreisbahn bewegen Java Basics - Anfänger-Themen 5
P Erste Schritte Kreis animieren Java Basics - Anfänger-Themen 2
A Kreisumfang/-Fläche vom Kreis berechnen Java Basics - Anfänger-Themen 39
H Kreis verschieben Java Basics - Anfänger-Themen 10
Z Object Kreis am Frame abprallen lassen! Java Basics - Anfänger-Themen 12
X Kreis/Linie Programmieren Java Basics - Anfänger-Themen 1
D Algorithmus für Punkte auf einem Kreis Java Basics - Anfänger-Themen 0
L Dreieck Kreis Java Basics - Anfänger-Themen 12
A Kreis,Radius Programm Java Basics - Anfänger-Themen 3
N Per Button Kreis zeichnen Java Basics - Anfänger-Themen 8
C Kreis nach Mausklick zeichnen Java Basics - Anfänger-Themen 5
A wie Kreis mit Schleife versetzten? Java Basics - Anfänger-Themen 25
O Punkte auf einem Kreis "wandern" lassen Java Basics - Anfänger-Themen 3
U Kreis um Textfelder zeichnen Java Basics - Anfänger-Themen 4
D Kreis mit Pfeiltaste bewegen Java Basics - Anfänger-Themen 3
K Bild auf Kreis packen Java Basics - Anfänger-Themen 2
E Kreis erstellen Java Basics - Anfänger-Themen 10
B Einen Kreis erzeugen Java Basics - Anfänger-Themen 3
S Erzeuge einen Kreis Java Basics - Anfänger-Themen 16
B Kreis,Punkt,Zylinder Java Basics - Anfänger-Themen 6
D Punktberechnung im Kreis Java Basics - Anfänger-Themen 15
TheKing Bild nur in Kreis sichtbar machen Java Basics - Anfänger-Themen 6
M Umfang von Rechteck oder Kreis anhand der Parameter Java Basics - Anfänger-Themen 2
L Klickbarer Bereich in einem Kreis Java Basics - Anfänger-Themen 13
D kreis gelb gefüllt aber schwarzer rand. Java Basics - Anfänger-Themen 2
K Kreis Zeichnen ? Code Richtig aber keine Zeichung Java Basics - Anfänger-Themen 8
L Kreis der sich bewegt Java Basics - Anfänger-Themen 11
G Kreis auf JComponent zeichnen Java Basics - Anfänger-Themen 8
0 Klasse Kreis Java Basics - Anfänger-Themen 4
P Java-Applet, Kreis zeichnen Java Basics - Anfänger-Themen 4
E Kreis in Frame ,den man mit der Maus versetzen kann? Java Basics - Anfänger-Themen 2
7 Kreis zeichnen Java Basics - Anfänger-Themen 4
J Kreis herumfliegen & abprallen von Rändern Java Basics - Anfänger-Themen 7
G contains - Punkt in Kreis enthalten? Java Basics - Anfänger-Themen 6
A Kreis mit gedrückter Maustaste bewegen. Java Basics - Anfänger-Themen 2
S Thread - Kugel im Kreis hin-und herflitzen lassen Java Basics - Anfänger-Themen 3
I Wortkette in umgekehrter Rheinfolge + in neuer Zeile ausgeben Java Basics - Anfänger-Themen 4
I Historisierung - Alter Wert, Neuer Wert... wie speichern? Java Basics - Anfänger-Themen 44
Csircc Neuer Array mit geringerer Länge und selben werten. Java Basics - Anfänger-Themen 2
G unklares Verhalten nach Instanzierung neuer Klasse Java Basics - Anfänger-Themen 3
D Neuer Start- und Endpunkt kann nur an bereits vorhandenen Start- oder Endpunkt anliegen Java Basics - Anfänger-Themen 2
G Generieren neuer ID Java Basics - Anfänger-Themen 21
J ComboBox mittels neuer Methode befüllen Java Basics - Anfänger-Themen 3
J Array mit neuer Methode übergeben Java Basics - Anfänger-Themen 5
R Serialport auslesen bei neuer Nachricht Java Basics - Anfänger-Themen 12
N JFrame-Objekt in neuer Methode nicht verfügbar? Java Basics - Anfänger-Themen 3
B for-schleife innerhalb neuer Methode Java Basics - Anfänger-Themen 5
V Kein neuer Thread trotz Runnable Java Basics - Anfänger-Themen 4
F Spiel geht nicht mehr nach neuer Klasse Sound Java Basics - Anfänger-Themen 18
V Datei in Ordner auslesen -> neuer Ordnername Java Basics - Anfänger-Themen 7
A Hinzufügen neuer Pakete Java Basics - Anfänger-Themen 5
K Nach x Sekunden neuer Text/Zeile Java Basics - Anfänger-Themen 11
J punkte verschwinden beim neuzeichnen neuer punkte Java Basics - Anfänger-Themen 11
K Datei öffnen, lesen, bearbeiten, in neuer datei speichern Java Basics - Anfänger-Themen 12
S StringBuffer in Datei - Problem mit neuer Zeile Java Basics - Anfänger-Themen 2
S neuer String zur jedem Teil von List Java Basics - Anfänger-Themen 2
J neuer Zeilenumbruch in Datei Java Basics - Anfänger-Themen 7
G Thread mit neuer methode Java Basics - Anfänger-Themen 6
C eifügen neuer Menüpunkte zur Laufzeit Java Basics - Anfänger-Themen 2
L px und x-position Java Basics - Anfänger-Themen 4
ptcho Werte/Position nach dem Funktionsaufruf tauschen? Java Basics - Anfänger-Themen 1
F wie kann ich die Position des letzten Vokals innerhalb einer Zeichenkette ermitteln? Java Basics - Anfänger-Themen 5
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
I 2D-Array Position der Liste ausgeben. Java Basics - Anfänger-Themen 2
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
J Itext-Paragraph Position ändern Java Basics - Anfänger-Themen 13
B Berechnung der Position von Kinderelemente von einem Elternknoten Java Basics - Anfänger-Themen 23
J Eine Position im String durch einen Integer - Wert teilen Java Basics - Anfänger-Themen 5
J Java GUI- Objekte Position per Quelltext bestimmen Java Basics - Anfänger-Themen 4
S suche nach varible POSITION ... fuer das pixel-maennchen Java Basics - Anfänger-Themen 4
I Eigenschaften von Position aus anderer Klasse übernehmen Java Basics - Anfänger-Themen 17
Anica Processing Animation Bild-Position ändern Java Basics - Anfänger-Themen 9
H Position verschieben der Elemtente im Array Java Basics - Anfänger-Themen 3
J Eingabe des Scanners an einer bestimmten Position Java Basics - Anfänger-Themen 6
S Position eines Frames Java Basics - Anfänger-Themen 3
S Einfach verkettete Liste Element an bestimmter Position einfügen Java Basics - Anfänger-Themen 24
T Arrayposition um eine Position verschieben Java Basics - Anfänger-Themen 2
V Klassen Bestimmen Sie die erste und letzte Position an der ein 'c' steht? Java Basics - Anfänger-Themen 3
R Position einer Ziffer in einer Zahlenkette Java Basics - Anfänger-Themen 5
V Datentypen Position mit Int und Float berechen und ausgeben Java Basics - Anfänger-Themen 5
Z Wie Position eines Objekts in Liste herausfinden? Java Basics - Anfänger-Themen 15
C Position eines Zeichens in einem String ausgeben Java Basics - Anfänger-Themen 1
J Buchstabe (char) an zufällige Position eines Strings einfügen Java Basics - Anfänger-Themen 1
C [Greasmonkey] Maus Coursor position setzen Java Basics - Anfänger-Themen 1
I Int Array, Zahl an bestimmte position setzten Java Basics - Anfänger-Themen 2
S Bild auf eine Position rotieren?! Java Basics - Anfänger-Themen 4
O Position des Buttons wird nicht geändert.. Java Basics - Anfänger-Themen 6
H Cursor-Position bei Rechtsclick? Java Basics - Anfänger-Themen 2
D 2 Fragen: Position ändern vs. LayoutManager / Bilder einfügen im Vordergrund Java Basics - Anfänger-Themen 3
S Maus Position Java Basics - Anfänger-Themen 6
A Eine Datei Lesen und bestimmte Position überschreiben Java Basics - Anfänger-Themen 2
S JSplitPane Divider Maximum Position Java Basics - Anfänger-Themen 5
W Position in ArrayList ermitteln Java Basics - Anfänger-Themen 4
M kurze frage: Ohne index.of position von string angeben Java Basics - Anfänger-Themen 16

Ähnliche Java Themen

Neue Themen


Oben