# Oval auf ein JPanel zeichnen



## Tytomik (28. Apr 2012)

Ich möchte Ein Oval zeichnen auf ein JPanel bzw. auf ein JFrame, allerdings macht Eclipse das nicht mit meinem Quelltext, deshalb hier mal der Quelltext und hoffe auf positive Rückmeldung.


```
import java.awt.*;
import javax.swing.*;



public class Zeichnen extends JComponent {
	JFrame fenster = new JFrame("Zeichnen");
	JPanel panel1 = new JPanel();

	  
	  

	public Zeichnen(){
		fenster.setLayout(null);
		fenster.setVisible(true);
		fenster.setSize(700,500);
		fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		fenster.add(panel1);

		
	
		panel1.setBounds(0, 0, fenster.getWidth(), fenster.getHeight());
		panel1.setBackground(Color.GREEN);
		

	
	}
	 @Override
	 protected void paintComponent(Graphics g) {

		 g.setColor(Color.GREEN);
		 g.fillOval(0, 0, 150, 150); 
		 g.drawOval(0, 0, 150, 150); 
	   }
	 
	
}
```


```
public class ZeichnenJPanel {

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

		
	}

}
```


----------



## L-ectron-X (28. Apr 2012)

setVisible(true); erst aufrufen, wenn deine GUI fertig zusammengebaut ist.


----------



## Tytomik (29. Apr 2012)

Dankeschön, allerdings ist das nicht der Grund dafür, dass auf dem GUI kein Kreis/Oval erscheint, dass muss an einem anderen Fehler liegen.


----------



## L-ectron-X (29. Apr 2012)

So sollte es aussehen:

```
import javax.swing.*; 
 
public class Zeichnen {
 
    public static void main(String[] args) {
      JFrame frame = new JFrame("Zeichnen") ;
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    
      frame.add(new ZeichnenPanel());
      frame.pack();
      frame.setLocationRelativeTo(null);
      frame.setVisible(true);        
    } 
}
```


```
import java.awt.*;
import javax.swing.*; 
 
public class ZeichnenPanel extends JPanel {
     
  public ZeichnenPanel() {
    setPreferredSize(new Dimension(400, 300));
  }

  @Override
  protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.setColor(Color.GREEN);
    g.fillOval(0, 0, 150, 150);
    g.setColor(Color.BLACK); 
    g.drawOval(0, 0, 150, 150); 
  }     
}
```


----------

