ScrollBar in JPanel einfügen

YelloW22

Erfahrenes Mitglied
hallo

ich habe ein JPanel in einer eigenen Klasse, das per eingabe eine Größe annimmt (zB 500 x 500).
Dieses Panel adde ich zu meinem Hauptfenster-JFrame (ebenfalls eigene Klasse)
Nun soll zum Panel eine Scrollbar hin zu gefügt werden, wenn die eingegebenen Maße größer als Das Hauptfenster sind (sprich unten oder rechts aus dem Bild ragen)

wie stell ich das an?


Das Panel füge ich so ins Hauptfenster ein:

public void neuesPanel(int breite, int hoehe)
{
this.breite = breite;
this.hoehe = hoehe;
ZeichenPanel zp = new ZeichenPanel (breite, hoehe);

c.fill = GridBagConstraints.BOTH;
c.weightx = 1;
c.weighty = 1;
c.gridwidth = 1;
c.gridx = 0;
c.gridy = 1;
this.add(zp,c);

zp.repaint();
}

Danke schon mal für die antworten
 
steig grad nich wirklich dahinter


Ich adde doch ins ScrollPane mein Panel und adde dann die ScrollPane in mein Hauptfenster oder?

wie würde das im Code aussehn ?
 
ne des war eher so gemeint:


ich muss doch in das ScrollPane mein Panel adden und dann das ScrollPane in mein Hauptfenster oder?
 
So funktioniert das nicht. Du musst dein JPanel als Parameter im JScrollPane-Konstruktor übergeben. Das JScrollPane kannst du dann ganz normal in dein Hauptfenster adden.

PS: Alternativ dazu kannst du dir auch den Viewport des JScrollPane holen, und dein JPanel als dessen View setzen. Das Ganze kann dann folgendermaßen aussehen.
Java:
// Hier die ursprüngliche Lösung:
JPanel panel = new JPanel();
JScrollPane scrollPane = new JScrollPane(panel);

// Hier die Alternative:
JPanel panel = new JPanel();
JScrollPane scrollPane = new JScrollPane();
JViewport viewport = scrollPane.getViewport();
viewport.setView(panel);

// Oder in einer Zeile zusammengefasst:
scrollPane.getViewport().setView(panel);
 
Zuletzt bearbeitet:
Zurück