# JPanel und Co. feste breiten



## phyrexianer (17. Nov 2005)

also die suche hat wiedermal nichts ergeben ;-) oder ich kann nicht suchen !!!

aber mal eine Frage wie kann ich denn bei der ganzen swing geschichte feste breiten festelgen habe zwar das mit setMaximumSize gefunden bei manchen elemnten aber das nimmt er net an.

wie muss ich vorgehen wenn ich zumbeispiel eine J mit fester Breite haben will ??? 

ich erzeuge erst ein Panel

```
JPanel p2 = new JPanel();
        p2.setLayout(new BorderLayout());
```


```
user = new JList(data);
        userScroll = new JScrollPane(user);
        userScroll.setSize(10,10);
        
                
        p2.add(ansicht, BorderLayout.NORTH ); // ein Dropdownmenue
        p2.add(userScroll , BorderLayout.CENTER); // eine Liste
```

und dann packe das panel p2 auf ein weiteres borderlayout mit anderen elementen ich hätte aber gerne bei der Scrollpanel eine feste maximale breite.......


wenn ich bei dem p2 Gridlayout verwede  dann teilt er mir den bereich und zwar die hälfte für das Dropdownmenue und die andere hälfe für die lieste....

hat jemand eine idee ????


----------



## SlaterB (18. Nov 2005)

setMaximumSize() 
ruhig immer im Verbund verwenden mit

setPreferredSize() // die wichtigste
setMinimumSize()
und setSize()


wenn sich dann noch was bewegt dann liegts am Layout, da heißt es dann wohl Layout wechseln,
mit null-Layout und setBounds(x,y,breite,hoehe) hast du als letzte Zuflucht die absolute Kontrolle,

bei ScrollPanes und anderen Behältern kann man evtl. vorher auch noch an den Größenangaben der enthaltenen Komponenten versuchen zu drehen..


----------



## phyrexianer (19. Nov 2005)

das ist ja ich versuche ja schon an den Scrollpanel was zu ändern oder an den hilfspanelen, aber es geht trotzdem nicht ich bekomme das ums verrecken net hin, will doch nur eine feste breite........ so schwer kann es doch net sein... !!! kann mir mal jemand einen codeschnipsel oder so zeigen ...... nicht das ich die sache falsch angehe !!!


----------



## phyrexianer (19. Nov 2005)

so, habe mein Ziel erreicht was ich wollte.....

also ich habe ja eine  JCombobox mit einem Auswahlmenue und eine JList mit Einträgen auf einen JScrollpanel gepackt. dann eine JPanel erstellt mit einem Borderlayout und dieses JPanel mit folgendem code "begrenzt"



```
JPanel p2 = new JPanel();
        p2.setLayout(new BorderLayout());
        p2.add(ansicht, BorderLayout.NORTH );
        p2.add(userScroll , BorderLayout.CENTER);
        f.width = 120;
        f.height =p2.getHeight();
        p2.setPreferredSize(f);
```

somit habe ich dann eine konstante Breite..... dises Panel habe ich dann auf ein noch größeres Panel mit anderen Elementen gepackt !!! Die größe kann verändert werden doch das rechte Menue bleibtauf einer konstaten breite. Ich werde auch mal versuchen sowas mit dem JSplitPanel zu machen..... poste es dann auch für andere hier rein !


----------



## freez (24. Nov 2005)

Vielleicht noch einen kleinen Tip:

TableLayout habe ich hier im Forum gefunden. Es war nicht schwer sich da rein zu arbeiten. Und es macht die Gestalltung von GUIs deutlich einfacher als die StandardLayouts von Java. Das ist jedenfalls meine Erfahrung. Und es ist auch schön, wie man mit festen und variablen Breiten und Höhen arbeiten kann. Es ist im Prinzip wie eine Tabelle in HTML, ohne Border.


----------

