Quadrat auf Frame zeichnen

Scratchy

Mitglied
Hallo,

ich bin noch totaler Java-Anfänger und wollte ein einfaches Quadrat auf ein Frame zeichnen.
Deshalb bin ich auch die paint(Graphics g) - Methode gekommen, kann diese aber nicht in meinen Code einbauen 🙁 .

Danke im Voraus



Hier der Code:
[JAvA]
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class OwnGraphic extends JFrame{
private JFrame f;
private JPanel p;
int a;
int b;

public OwnGraphic(){
f = new JFrame("Bewegung");
p = new JPanel();
f.setSize(400,200);
f.setDefaultCloseOperation(EXIT_ON_CLOSE);
//p.setBackground(Color.cyan);
p.paint(getGraphics() );
f.add(p);
f.setVisible(true);
}
public void paint(Graphics g){
a = 10;
b = 10;
g.fillRect(a,a+50,b,b+50);
}




public static void main(String[] args) {
new OwnGraphic();

}
}

[/code]
 
Java:
p.paint(getGraphics() );
ruft nicht die paint() Methode auf, die du geschrieben hast, denn die gehört zur OwnGraphic-Klasse und nicht zu p. p.paint(getGraphics()) ist nicht überschrieben und ist daher leer. Außerdem wird paint(g) automatisch aufgerufen, neu zeichnen kannst du bei Bedarf mit repaint().

Um auf Swing-Komponenten zeichnen, überschreibt man paintComponent(Graphics g), paint(Graphics g) ist für AWT.

OwnGraphic erbt zwar von JFrame, aber du verwendest das gar nicht.
Java:
public class OwnGraphic extends JFrame{
    private JFrame f;

Geändert sieht das dann so aus:
Java:
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class OwnGraphic extends JPanel{
	
	private JFrame f;
	int a;
	int b;

	public OwnGraphic(){
		f = new JFrame("Bewegung");
		f.setSize(400, 200);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.add(this);
		f.setVisible(true);
	}

	public void paintComponent(Graphics g){
		a = 10;
		b = 10;

		g.fillRect(a, b, a + 50, b + 50);
	}

	public static void main(String[] args){
		new OwnGraphic();
	}
	
}
 

Neue Themen


Zurück
Oben