# JPanel Größe ermitteln



## snopy019 (9. Jan 2007)

Hallo,

klingt einfach, aber ich find nix im Netz und komm selber nit drauf. Also mein Problem ich benötige die Größe eines JPanels, bevor ich weiter JPanels drauflege.


```
public class MainCmd extends JFrame
{

    MainCmd()
    {
        super("CMD");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(600,600);
        getContentPane.add(new MainPanel());
    }


    public static void main(String[] args)
    {
            wind=new MainCmd();
            wind.setVisible(true);
    }

public class MainPanel extends JPanel
{
    
    MainPanel()
    {
        setBackground(Color.red);
        setLayout(new GridBagLayout());
        .
        .
        .
        // Hier würde ich die größe des MainPanels benötigen, denn hier kommen neue JPanels drauf
        add(new CMPPowerJPanel()):
        add(new .....);

    }

}


[code/]

Also vielleicht kann mir jemand bei meinen Problem helfen. Mit getSize() oder mit getPreferredSize() erhalte ich den Wert 0 bzw. 6.

Im Prinzip erzeuge ich ein JFrame. Darauf lege ich ein JPanel, hier nenne ich es mal MainJPanel. Auf dieses MainJPanel kommen wiederum weiter JPanels. Ich kann beim Programm keinen LayoutManager verwenden. Also setLayout(null). Um aber die Panels auf das MainJPanel setzen zu können benötige ich vorher die größe des MainJPanels. Die Größe des MainJPanels wird durch die größe des Bildschirms bestimmt!! Also ich kann vorm Programmstart nicht sagen, wie groß es ist!

Hoffe es hat jemand einen guten Tipp, wie ich das Problem lösen kann.

Vielen Dank im Voraus.

snopy
```


----------



## Wildcard (9. Jan 2007)

getSize funktioniert.


----------



## Guest (9. Jan 2007)

hi, 

danke, aber getSize() liefert mir 0 zurück! 

snopy


----------



## Wildcard (9. Jan 2007)

Liegt dann daran, dass das Panel zu diesem Zeitpunkt eben noch keine Größe hat.


----------



## Guest (9. Jan 2007)

Hi,

genau, und genau das ist das Problem! Und ich weiss nicht wie ich auf die Größe kommen kann. Oder wie ich das Problem übergehen kann. Ich brauch die Größe des JPanels bevor ich die anderen JPanels rauflege.

snopy


----------



## Wildcard (9. Jan 2007)

Was verstehst du daran nicht? Wenn du die Größe nicht hast, dann hast du sie eben nicht  :bahnhof: 
Wo soll Java sie den hernehmen wenn du sie nicht weißt?


----------



## Guest (9. Jan 2007)

Hi,

danke. Sorry wenn ich vielleicht undeutlich ausgedrückt hab. Genau das ist mein Problem. Und darum stellte ich diese Frage. 
Vielleicht weiss jemand einen Trick, Möglichkeit, etc. Damit ich diese Größe trotzdem vorher feststellen kann. Damit auch Java und ich die Größe vorher wissen. ;-)

snopy


----------



## Wildcard (9. Jan 2007)

Welche Größe?


----------



## Guest (9. Jan 2007)

Hi,

ich hab ein JPanel mit einer bestimmten prozentualler Bildschirmgröße. Das Programm kann von einen Monitor auf einen anderen gelegt werden. Das heisst, ich weiss nicht im vorhinen wie groß das JPanel ist. Also variable Größe.

Java weiss sowohl wie groß es ist. Es zeichnet es ja in der richtigen Größe. Es füllt ja den ganzen Platz aus. Allerdings brauch ich den Wert bevor Java es auf den Bildschirm plottet.

Anmerkung. Zur zeit lass ich das Bild 1 mal aufbauen, dann sieht man kurz das Programm völlig falsch angeordnet. Aber daraus bekomm ich dann die Höhe,.. mit getSize(). nimm diese Höhe her und zeichne neu. Und dann passts. Und diesen Schritt will ich nicht. 


snopy


----------



## Wildcard (9. Jan 2007)

> Die Größe des MainJPanels wird durch die größe des Bildschirms bestimmt


Dann hol dir vorher die Größe des Bildschirms über das Toolkit.


----------

