paint( Graphics g)

Status
Nicht offen für weitere Antworten.

Brain

Aktives Mitglied
Hallo!!!
Ich habe folgendes Problem: Ich habe die paint Methode angelegt und wollte einen Kreis zeichnen. Als ich dann die Applikation ausgeführt habe, hatte ich keinen Kreis gesehen.

Code:
  class Zeichnung extends JPanel {
       public void paint(Graphics g) {
             g.setColor(Color.red);
             g.drawOval(60, 60, 150, 150);
       }
   }

Ich hatte es auch mit "extends Canvas" ausprobierrt, doch es war ebenfalls nichts zu sehen.
 
hast du überhaupt einen (J)Frame angelegt, oder ist da salles was in deinem Programm steht?
 
bin mir nicht ganz sicher, aber ich glaube du musst dazu die methode paintComponent(Graphics g) verwenden....
 
protected void paintComponent(Graphics g)
ist für eigene komponenten, die dadurch gezeichnet werden. um auf nen (J)Frame zu zeichnen ist nich mehr als paint() nötig, aber damit hatte ich letztens auch so meine probleme 😉
 
hi, so sollte es gehen. einen kreis kann man nur als kreisförmige elypse zeichnen.

Code:
    import java.awt.*;
    import javax.swing.*;
    
    public class DrawCirce{
        public static void main(String[] args) {
            new DrawCirce();
        }
        DrawCirce() {
                        JFrame frame = new JFrame();
    
           
            frame.getContentPane().add(new MyComponent());
    
            int frameWidth = 300;
            int frameHeight = 300;
            frame.setSize(frameWidth, frameHeight);
            frame.setVisible(true);
        }
    
        class MyComponent extends JComponent {
            public void paint(Graphics g) {
           
     Graphics2D g2d = (Graphics2D)g;
    
                int x = 0;
                int y = 0;
                int width = getSize().width-1;
                int height = getSize().height-1;
                g2d.drawOval(x, y, width, height);
            }
        }
    }


nicht getestet, falls kein kreis rauskommt, einfach mal die kooordinaten ändern🙂


gruß math55
 
wie gesagt: bei komponenten muss anstatt paint(GRaphics g); protected void paintComponent(Graphics g) verwendet werden
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben