JScrollPane scrollt nicht

Rol

Aktives Mitglied
Hallo,

ich möchte mit NetBeans eine GUI bauen. Als Grundlage habe ich eine JFrame Form erstellt auf der ich mit dem GUIBuilder meine Swing Komponenten plaziert habe. Soweit sogut.
Jetzt möchte ich, dass, wenn ich das Fenster (dann in der laufenden Anwendung, nicht im GUIBuilder) verkleinere automatisch Scrollbars erscheinen damit weiterhin alle Komponenten zugänglich sind.

Ich habe nun versucht, in die neu erstellte JFrame Form erst einmal eine JScrollPane einzufügen und alle anderen Komponeneten dann in diese JScrollPane in der Annahme die JScrollPane übernimmt dann das scrollen bei Platzmangel automatisch.

Leider passiert das nicht. Wenn ich das Fenster verkleinere werden imer noch die nicht darstellbaren Komponeten einfach abgeschnitten und es erscheinen keine Scrollbars.

Ist die Vorgehensweise, das ganze JFrame mit einem JScrollPane zu füllen und dann alles weitere in diese JScrollPane zu packen überhaupt der richtige Weg?

Wenn nein, wie macht man es "richtig". Wenn ja, wie bringe ich das ganze dazu, dass die Scrollbars automatisch bei Platzmangel erscheinen.

MfG
Rol
 
ohne nachzuschauen meine ich, dass du erst noch n panel in das frame setzten musst, dem du dann die scrollbar hinzufügst. falls ich mich richtig erinnere 😉
 
ein JScrollPane scrollt nur wenn sich der Inhalt groß genug fühlt,
je nach Layout kann sich dieser vom selbst verkleinern, selbst wenn dann nicht mehr alles anzuzeigende reinpasst,
ohne komplettes Testprogramm schwer zu beurteilen wie alle Layoutfragen
 
Ich habe es jetzt so lösen können, dass ich:

JFrame Form => darin ein JScrollPane => darin ein JPanel => darin der ganze eingentliche Inhalt des GUI.

Es funktioniert, mich würde aber trotzdem die Meinung eines Profis interessieren, ob dass so "sauber" ist.
 
Normal setzt man die Komponente in den JViewport vielleicht ist das dein Problem sieht dann so aus:

Java:
JScrollPane pane = new JScrollPane();
JTable table = new JTable();
pane.setViewportView(table);

Keine Ahnung ob du das so gemacht hast aber so sollte es normal sein 😉
 
noch günstiger bei diesem Aufbau wäre aber
Java:
JTable table = new JTable();
JScrollPane pane = new JScrollPane(table);
😉
 

Zurück
Oben