# JPanel überlagern



## Guest (7. Mai 2008)

Hallo,

folgendes Problem. Ich habe ein JPanel mit einem BorderLayout. Im "Center" habe ich ein ScrollPanel indem ich eine große Anzahl an Auswahlmöglichkeiten darstellen muss. 

Ich würde aber gern auf das ScrollPanel verzichten und stattdessen würde ich lieber nur den oberen Teil des Panels anzeigen lassen und wenn der User mit der Maus auf das Panel geht, soll sich der Rest angezeigt werden.

Dabei soll sich aber die Größe des Panels mit dem BorderLayout nicht ändern, sondern das Auswahlpanel soll über die Grenzen hinaus gezeichnet werden.

Gibt es da eine Möglichkeit die Panels zu überlagern??


Das ganze soll dann so aussehen


```
------------------------------------------------------------------
|        Panel mit BorderLayout                                  |
|      ---------------------------------------------------       |
|      |                                                 |       |
|      |                                                 |       |
|------|-------------------------------------------------|-------|          
       |                                                 |
       |                                                 |
       |                                                 |
       |-------------------------------------------------|
```

Das Panel befindet sich im oberen Teil von einem JFrame. Das heißt das auszurollende Panel geht übre die Grenezen von dem BorderLayout Panel und reicht bis in das darunterliegende panel.

Ich hoffe es ist verständlich was ich meine.

_L-ectron-X hat diesen Beitrag am 07.05.2008 um 12:52 Uhr editiert.
Zeichnung ausgebessert, so dass etwas zu erkennen ist._


----------



## Michael... (7. Mai 2008)

Das geht wohl nur mit einem Null-Layout oder besser noch mit einem eigenen LayoutManager.


----------



## Marco13 (7. Mai 2008)

... Spätestens, wenn das ausgeklappte Panel über den Fensterrand hinausragen muss, braucht man da wohl irgendwas Popup-Menu-artiges....  :?


----------



## Gast (7. Mai 2008)

Also für mich hört sich das doch sehr danach an als ob du hier was eigenes programmieren musst.


----------



## Guest (8. Mai 2008)

schade...

ich dachte es würde die möglichkeit geben das mit standardfunktionen zu implementieren.
vielleicht überlege ich mir dann doch was anderes


----------



## L-ectron-X (8. Mai 2008)

Ich hab sowas noch nie gemacht, aber eventuell kann man sowas mit JLayeredPane bauen. Keine Ahnung, ob das JLayeredPane auch außerhalb eines Java-Fensters existieren kann.
Vielleicht kann man auch ein JWindow präparieren.


----------



## Wildcard (8. Mai 2008)

Um über die Frame Grenzen hinaus zu zeichnen, brauchst du in jedem Fall eine Heavyweight Komponente.
Ein JPopupMenu kann dafür missbraucht werden, da es selbst entscheided ob es heavy oder lightweight sein muss.
Seit Java 1.4 gibt's aber auch die Klasse Popup, das dürfte das passende für dich sein:
http://java.sun.com/javase/6/docs/api/javax/swing/Popup.html


----------



## Guest (9. Mai 2008)

mit popupmenu könnte klappen.

danke für die hilfe.


----------



## Guest (9. Mai 2008)

hab das mal mit nem popupmenu versucht und funktioniert auch fast...
aber wenn ich mit dem mauszeiger auf das popupmenu komme, dann fängt es an zu flackern...

woran könnte das liegen???


----------



## Marco13 (9. Mai 2008)

Hm. Vermutlich daran, dass du mit dem Mauszeiger über das Popupmenu kommst. Ist aber nur geraten. Muss nicht stimmen.


----------



## Guest (9. Mai 2008)

hat sich schon erledigt. war n fehler in meinem mouselistener!!


----------



## Wildcard (9. Mai 2008)

Warum schreib ich eigentlich extra du sollst besser Popup statt Popupmenu nehmen, wenn ich dann doch ignoriert werde?  :lol:


----------

