# drawOval() geht nicht!!



## Waxe (13. Jul 2009)

Ich hab folgendes Problem:
Ich will außerdem Kreise implementieren in Zeile 50 aber es geht nicht mit der Methode: drawOval(int x, int y, .... );

Bitte helfen!!!

```
import java.awt.Graphics;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.image.*;
import java.awt.*;
import javax.swing.JApplet;
import java.io.*;
import javax.imageio.ImageIO;
import javax.swing.plaf.*;import java.awt.image.*;
import java.awt.*;
import javax.swing.JApplet;
import java.io.*;
import javax.imageio.ImageIO;
import javax.swing.plaf.*;
 
public class AJ {
    public static void main(String[] args) {
        AJ big = new AJ();
    }
    private Frame window;
    private boolean[][] fields;
    
    public AJ(){
        window = new Frame();
        window.add(panel);
        
        fields = new boolean[3][3]; // per default sind alle Elemente des boolean-Arrays false
        
        window.addKeyListener(new KeyAdapter(){
            public void keyReleased(KeyEvent event){
                int number = event.getKeyChar()-'0';
                if(number > 0 && number < 10){
                    fields[(number-1)%3][2-(number-1)/3] = true;
                    panel.repaint();
                }
            }
        });
        window.setBounds(100,100,300,300);
        window.setBackground(new Color(108, 194, 247));
        window.setVisible(true);  
        
        window.addKeyListener(new KeyAdapter(){
            public void keyReleased(KeyEvent event){
                char letter = event.getKeyChar();
                if((letter == 'q'))
                {
                    fields[0][0] = true;
                    
                    panel.repaint();

                }
                if((letter == 'w'))
                {
                    fields[1][0] = true;
                    panel.repaint();
                }
                if((letter == 'e'))
                {
                    fields[2][0] = true;
                    panel.repaint();
                }
                if((letter == 'a'))
                {
                    fields[0][1] = true;
                    panel.repaint();
                }
                if((letter == 's'))
                {
                    fields[1][1] = true;
                    panel.repaint();
                }
                if((letter == 'd'))
                {
                    fields[2][1] = true;
                    panel.repaint();
                }
                if((letter == '<'))
                {
                    fields[0][2] = true;
                    panel.repaint();
                }
                if((letter == 'y'))
                {
                    fields[1][2] = true;
                    panel.repaint();
                }
                if((letter == 'x'))
                {
                    fields[2][2] = true;
                    panel.repaint();
                }
            }
        });
        window.setBounds(100,100,300,300);
        window.setVisible(true);    
        window.setBackground(new Color(108, 194, 247));
    }
    
    JPanel panel = new JPanel() {
        
        public void paintComponent(Graphics g){
            super.paintComponent(g);

            
            final int fieldSize = getSize().width<getSize().height? getSize().width/3 : getSize().height/3;
 
            g.drawLine(fieldSize, 0, fieldSize, fieldSize*3);
            g.drawLine(fieldSize*2, 0, fieldSize*2, fieldSize*3);
 
            g.drawLine(0,fieldSize,fieldSize*3,fieldSize);
            g.drawLine(0,fieldSize*2,fieldSize*3,fieldSize*2);
            
    
            for(int i=0;i<fields.length;++i){
                for(int e=0;e<fields[i].length;++e){
                    if(fields[i][e]){
                      g.drawLine(i*fieldSize,e*fieldSize,i*fieldSize+90,e*fieldSize+90);
                      g.drawLine(i*fieldSize,e*fieldSize+90,i*fieldSize+90,e*fieldSize);
                    }
                }
            }
            
        }
      
    };
}
```


----------



## Gonzo17 (13. Jul 2009)

Zeile 50? Da ist doch eine if-Abfrage? 
Wie wärs wenn du mal die Methode, die du implementieren willst, genau an die Stelle schreibst, wo du denkst, dass sie hin soll und sagst, was nicht funktioniert? (Exception o.ä.)


----------



## MiDniGG (13. Jul 2009)

Ja eben. Also zeichnen solltest Du nur in der paint-Methode. Da kannst ja auch if-Abfragen einfügen...


----------



## Waxe (13. Jul 2009)

ja das is jetz vielleicht von mir blöd dargestellt.
ich will, dass in der if-Abfrage die Methode drawOval(int x, int y, .... );
asgeführt wird, d.h. wenn der Buchstabe 'q' gedrückt ist, dann soll er das Oval zeichnen.


----------



## Marco13 (13. Jul 2009)

Grundsätzlich und ganz pragmatisch

```
public class AJ 
{
    private boolean malDasDingens = false;


...
                if((letter == 'q'))
                {
                    malDasDingens = true;
                    fields[0][0] = true;
                    
                    panel.repaint();
 
                }
...
    
    JPanel panel = new JPanel() {
        
        public void paintComponent(Graphics g){
            super.paintComponent(g);
 
            if (malDasDingens) g.drawOval(....);
```

Das mit den Fields sieht aber SEHR befremdlich auch. Vielleicht kann jemand ein paar Tipps geben, wenn du genauer beschreibst was du vorhast...


----------

