Java-Swing : JComponent

Habe diesen Code im Internet gefunden(bzw. auch etwas modifiziert)
Java:
import javax.swing.JFrame;
import javax.swing.JComponent;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Color;

public class FensterKreis extends JFrame
{
    public static class MyComponent extends JComponent{
        @Override
        public void paintComponent(Graphics g) {
            Graphics2D graphics2D = (Graphics2D)g;
            
            int width = getWidth();
            int height = getHeight();
            
            Ellipse2D.Double ellipse 
            = new Ellipse2D.Double(0, 0, width, height);
            
            Rectangle2D.Double rectangle 
            = new Rectangle2D.Double(width/4, height/4, width/2, height/2);

            g.setColor(Color.BLUE);
            graphics2D.draw(ellipse);
            g.setColor(Color.RED);
            graphics2D.fill(rectangle);

        }
    }

    public FensterKreis() {
        setTitle("YO MAMA");
        setSize(1230, 3230);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setResizable(true);
        setLocation(100,100);

        this.add(new MyComponent());

        setVisible(true);
    }
}
Mich interessieren jetzt aber doch diese beiden Zeilen:
Java:
            int width = getWidth();
            int height = getHeight();
Meine Frage wäre nun wieso diese beiden Werte die Höhe bzw. Länge des Frames haben? Bezieht sich das nicht auf den JComponent? Und wenn ja wie und woher bekommt dieser Component, die Längenangaben?
 
Zuletzt bearbeitet:
Hi,
In der API Java Platform SE 7 von Java 7 steht:
...The base class for all Swing components except top-level containers. To use a component that inherits from JComponent, you must place the component in a containment hierarchy whose root is a top-level Swing container. Top-level Swing containers -- such as JFrame, JDialog, and JApplet -- are specialized components that provide a place for other Swing components to paint themselves. ...
Da JFrame in deinem Bespiel der top-level- Container ist, bekommst du mit getHeight() und getWidth() die Höhe bzw. Breite vom JFrame zurück.
 
Passende Stellenanzeigen aus deiner Region:

Oben