Im JPanel scrollen

Marc79

Mitglied
Hallo zusammen,

ich habe aktuell vermutlich ein Verständnisproblem bezüglich des Scrollens innerhalb eines JPanels.

Ich habe ein JPanel angelegt und diesem gesagt: setAutoScroll(true)
Dann packe ich unterschiedlich viele Labels untereinander auf dieses Panel.

Unter c# z.B. wird automatisch ein Scrollbalken erzeugt, sobald mehr Objekte auf dem Panel liegen, als angezeigt werden können.

Nun habe ich etwas gegoogelt und gesucht. Durchaus auch Beispiele gefunden, die aber leider mein Problem nicht wirklich lösen.

Ich habe gelesen, dass man z.B. einen JScrollPane benötigt.
Dann habe ich so ein angelegt, aber wenn ich versuche diesem meine Labels zuzuweisen, sehe ich immer noch keine Scrollbalken.

Auch wenn ich dem JScrollPane ein JPanel zuweise, immer noch keine Scrollbalken.

Was mache ich falsch? Jemand einen Idee, Anregung oder einen Link den ich übersehen habe?

Vielen Dank vorab!

Gruß Marc
 
Die Beispiele waren gut;)
In Swing benötigst du für so etwas immer ein JScrollPane.
Ich vermute, du hast deinen Code nicht an dieses JScrollPane angepasst.
Wenn dein Code früher so aussah:
Java:
Container c; //c sei der Container, zu dem dein JPanel hinzugefügt werden soll
JPanel panel = new JPanel();
c.add(panel);
Dann muss er jetzt so aussehen:
Java:
Container c; //c sei der Container, zu dem dein JPanel hinzugefügt werden soll
JPanel panel = new JPanel();
JScrollPane scrollpane = new JScrollPane(panel);
c.add(scrollpane);
Wichtig ist dabei vor allem die letzte Zeile!!
Du kannst der JScrollPane auch noch parameter übergeben, wann die Scrollbalken angezeigt werden sollen:
Java:
setHorizontalScrollBarPolicy(int);
setVerticalScrollBarPolicy(int);
 
Hi genodeftest:

Ich wollte ja auch nicht sagen, dass die Beispiele schlecht waren ;-)
Ich hatte genau, wie du es vermutet hast nicht das JScrollPane, sondern das JPanel dem ContantPane zugewiesen ... :-/

Vielen Dank für deinen Tipp.
Nun klappt alles bestens :)

Gruß Marc
 
Zurück