JScrollBar JScrollPane

Status
Nicht offen für weitere Antworten.

julchen81

Bekanntes Mitglied
Hallo!!

Ich bastel jetzt schon eine ganze Weile an Folgendem rum:
hab ein Fenster mit GridBagLayout erstellt. Es enthällt sehr viele Komponenten. Die Klasse heißt GUImiddle und extends die abstrakte Klasse GUI, diese wiederum extends JFrame.

hier der denke ich entscheidende Code-Ausschnitt von GUImiddle:
Code:
public GUImiddle() {
				
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent ev) {
				System.exit(0);
			}
		});
		
		GridBagLayout gbl = new GridBagLayout();
		GridBagConstraints gbc = new GridBagConstraints();
		setLayout(gbl);
		gbc.fill = GridBagConstraints.HORIZONTAL;
		gbc.insets = new Insets (10,10,2,30);
		
		JLabel lbl = new JLabel("Mitte");
		gbc.gridx = 0;
		gbc.gridy = 0;	
		gbl.setConstraints(lbl, gbc);
		add(lbl);
		
		lbl = new JLabel("Nummer");
		gbc.gridx = 0;
		gbc.gridy++;	
		gbl.setConstraints(lbl, gbc);
		add(lbl);
        ...............

Weil es jetzt so viele Komponenten sind, möchte ich das ganze gerne mit einen Scroll-Balken Vertikal.
Jetzt gibt's da die Möglichkeit JScrollBar aber auch JScrollPane.
Ich muss eingestehen, dass ich den Aufbau von Fenstern noch nicht komplett begriffen habe. Aber wenn ich mich da jetzt noch komplett durcharbeiten muss, hält das ewig auf und ich glaube, man kann das doch schnell hinzufügen?

Wie man z.B. einem JTextArea eine JScrollBar hinzufügt, weiß ich; auch habe ich mich an einer Testdatei versucht:
Code:
public GI() {
		super ("das");
		Container co = getContentPane();
		JScrollBar sbr = new JScrollBar(JScrollBar.VERTICAL);
		co.add("East", sbr);    //auch co.add(sbr, "East") funktioniert nicht
		GridBagLayout gbl = new GridBagLayout();
		co.setLayout(gbl);
	}

diese Datei hat jetzt gar nix mit den vorher Beschriebenen zu tun; die Klasse mit diesem Konstruktor extends JFrame.
Hier wird mir wunderhübsch eine ScrollBar eingefügt, jedoch mittig. Die Angabe "East" beeindruckt mein Programm gar nicht :(

Kann mir bitte jemand einen Tipp geben?

LG
Julia
 

Wildcard

Top Contributor
Wenn du etwas scrollen können willst, setz es auf eine JScrollPane. Es gibt sehr wenige Dinge für die man eine ScrollBar direkt verwendet.
 

julchen81

Bekanntes Mitglied
So, das ist schon mal eine wesentliche Einschränkung, wenn ich mich 'nur' mit JScrollPane befassen muss...

hätte jetzt folgendes geschrieben:
Code:
public GUIleft() {
		
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent ev) {
				System.exit(0);
			}
		});
		GridBagLayout gbl = new GridBagLayout();
		GridBagConstraints gbc = new GridBagConstraints();
		JScrollPane sbp = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
		setLayout(gbl);
		gbl.addLayoutComponent(sbp, null);
		gbc.fill = GridBagConstraints.HORIZONTAL;
		gbc.insets = new Insets (10,10,2,30);
		
		JLabel lbl = new JLabel("Links");
		gbc.gridx = 0;
		gbc.gridy = 0;	
		gbl.setConstraints(lbl, gbc);
		add(lbl);
        .................

Ich erstelle also eine JScrollPane sbp und füge dem GridBagLayout diese dann hinzu.
Aber wieso wird nix angezeigt?? :x

Julia
 

Wildcard

Top Contributor
Am besten du übergibst der JScrollPane die Komponente im Konstruktor. alternativ: setViewPortView.
 

Marco13

Top Contributor
GridBagLayout - mein Liebling <3 :wink:

Vielleicht nochmal allgemein: Wenn man irgendeine Component "scrollbar" machen will, dann wickelt man sie eigentlich "nur" in eine JScrollPane ein - sonst ändert sich (eigentlich) nichts. Das ganze passiert (weitgehend!) unabhängig vom LayoutManager usw.

Vorher:
Code:
JComponent shouldBeScrolled = new MyComponent();
container.add(shouldBeScrolled);

Nachher:
Code:
JComponent shouldBeScrolled = new MyComponent();
JScrollPane scrollPane = new JScrollPane(shouldBeScrolled);
container.add(srollPane);
 

julchen81

Bekanntes Mitglied
Guten Morgen!

Meine JScrollPane sollte sich aber nicht auf eine einzelne Komponente beziehen:
ich hab doch dieses GridBagLayout. In dieses setzte ich bis zu 100 Zeilen, bestehend aus Labels und Textfeldern.
Ich möchte die JScrollPane aber nicht auf ein einzelnes Label oder Textfeld beziehen, sondern auf das gesamte Fenster.
Und
Code:
JFrame frame = new JFrame();
JScrollPane sp = new JScrollPane(frame);
Container c =  frame.getContentPane();
c.add(sp);

mag er so nicht... also wie bitte könnte ich das auf's gesamte Fenster hinkriegen?

LG
Julia
 

julchen81

Bekanntes Mitglied
wobei ich mich schon frage, wieso man nicht auch ein JFrame übergeben kann; die ist doch abgeleitet von Component.
Auf alle Fälle erhalte ich eine java.lan.IllegalArguementException in dieser Zeile:
Code:
JScrollPane sp = new JScrollPane(frame);

Julia
 

Wildcard

Top Contributor
Das was du der ScrollPane übergibst liegt in der ScollPane. Ein Fenster kann nicht in einer Component liegen.
Du willst den Inhalt des Frames in der ScrollPane haben, nicht das Fenster selbst.
 

julchen81

Bekanntes Mitglied
Aber ich möchte den gesamte Inhalt des Fenster in der JScrollPane haben, nicht einzelne Komponenten!
Deshalb dachte ich, ich muss das ganze Fenster übergeben. Weiß auch nicht, wie ich das sonst machen könnte?! :bahnhof:

Liebe Grüße
Julia
 

L-ectron-X

Gesperrter Benutzer
Du übergibst nicht das Fenster der JScrollPane, oder den Container (getContentPane() ).
In diesem Container muss vielmehr die JScrollPane liegen, oder eine andere Komponente (bswp ein JPanel), die ihrerseits die JScrollPane enthält und dem Fenster-Container zugeordnet wird.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
O JScrollPane , JScrollBar Java Basics - Anfänger-Themen 3
StrikeTom JScrollBar horizontal Java Basics - Anfänger-Themen 5
hdi Grösse & Position von JScrollBar Java Basics - Anfänger-Themen 28
M JScrollBar Java Basics - Anfänger-Themen 3
G JScrollBar Java Basics - Anfänger-Themen 5
A JPanel(mit JScrollBar) größe ändern Java Basics - Anfänger-Themen 9
K jScrollbar erst nach klicken sichtbar Oo Java Basics - Anfänger-Themen 2
Franky868 JList in einer JScrollbar + letztes Element sichtbar Java Basics - Anfänger-Themen 2
R Größe der JScrollBar Java Basics - Anfänger-Themen 3
R JScrollBar Java Basics - Anfänger-Themen 10
richis-fragen GlassPane über JScrollPane legen Java Basics - Anfänger-Themen 6
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
L JScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 10
G Frage zu JScrollPane Java Basics - Anfänger-Themen 12
M JScrollPane scrollt nicht Java Basics - Anfänger-Themen 2
D JScrollPane mit TextArea Java Basics - Anfänger-Themen 5
N JList + DefaultListModel + JScrollPane --> ensureIndexIsVisible funktioniert nicht immer Java Basics - Anfänger-Themen 1
T JScrollPane in den Code einbauen Java Basics - Anfänger-Themen 5
O JScrollPane zu gross für JTable Java Basics - Anfänger-Themen 2
A JScrollPane nicht sichtbar Java Basics - Anfänger-Themen 5
S JScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 6
N jScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 13
L Jscrollpane nach zoomen anpassen Java Basics - Anfänger-Themen 20
C JScrollPane + JTextArea scrollt nicht Java Basics - Anfänger-Themen 2
T JScrollPane nicht scrollbar (mit KSKB!) Java Basics - Anfänger-Themen 4
T JScrollPane: Slider programmgesteuert verschieben? Java Basics - Anfänger-Themen 4
Kenan89 JScrollPane, aber kein Scrollbalken Java Basics - Anfänger-Themen 4
T JScrollPane funktioniert nicht Java Basics - Anfänger-Themen 7
D jScrollPane Problem Java Basics - Anfänger-Themen 16
JStickman JTree, JScrollPane, Liste mit graphischer Suchleiste - Dateimanager Java Basics - Anfänger-Themen 10
A Button das JScrollPane aktualisiert Java Basics - Anfänger-Themen 11
S JScrollPane verhält sich nicht so wie gedacht Java Basics - Anfänger-Themen 2
T JScrollPane ganz runter Scrollen Java Basics - Anfänger-Themen 4
T JScrollPane resized nicht richtig... Java Basics - Anfänger-Themen 4
Z Label verschwindet in JScrollPane Java Basics - Anfänger-Themen 7
N JScrollPane repaint(); geht nicht Java Basics - Anfänger-Themen 4
R JScrollPane in JTextArea benutzen Java Basics - Anfänger-Themen 10
L JPanel vergrößern bis JScrollPane nicht mehr zu sehen Java Basics - Anfänger-Themen 7
Z JScrollPane zeigt Zeit als Datum Java Basics - Anfänger-Themen 5
E Breite des Schiebers in JscrollPane verändern Java Basics - Anfänger-Themen 2
T JScrollPane soll rechts gescrollt gezeichnet werden Java Basics - Anfänger-Themen 5
P JScrollPane Java Basics - Anfänger-Themen 18
J JScrollPane, Regler-Problem Java Basics - Anfänger-Themen 3
J JScrollPane swing Java Basics - Anfänger-Themen 8
H JTable in JScrollPane: Scrollbar wird nicht angezeigt. Java Basics - Anfänger-Themen 2
H2SO3- JScrollPane will nicht scrollen Java Basics - Anfänger-Themen 3
_deleted Mehrere Panels untereinander im JScrollPane Java Basics - Anfänger-Themen 4
J JScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 4
A JScrollPane aktualisiert nicht Java Basics - Anfänger-Themen 2
7 Java Swing: Wie JScrollPane zur JList hinzufügen? Java Basics - Anfänger-Themen 12
C jTabbedPane JScrollPane und jPanel Java Basics - Anfänger-Themen 3
S JScrollPane und JPanel Java Basics - Anfänger-Themen 2
Q Anwendung eines JScrollPane Java Basics - Anfänger-Themen 2
M JScrollPane Java Basics - Anfänger-Themen 7
M Probleme mit JScrollPane Java Basics - Anfänger-Themen 5
G JScrollPane Java Basics - Anfänger-Themen 5
S JScrollPane: Scrollbalken werden nicht angezeigt Java Basics - Anfänger-Themen 4
P Brauche Hilfe für JPanel im JScrollPane und Abstände Java Basics - Anfänger-Themen 2
M VisualEditor, Jlist und JScrollPane Java Basics - Anfänger-Themen 9
M JScrollPane soll inhalt zentrieren Java Basics - Anfänger-Themen 3
C Automatischer Umbruch bei JScrollPane? Java Basics - Anfänger-Themen 5
G JScrollPane + JTable + Autoscroll uvm. Java Basics - Anfänger-Themen 5
N JScrollPane mit JTextArea Java Basics - Anfänger-Themen 4
I Autoscrolling im JScrollPane Java Basics - Anfänger-Themen 3
H JScrollPane -> Problem bei ScrollBar Java Basics - Anfänger-Themen 3
lin JScrollPane & OutOfMemoryError Java Basics - Anfänger-Themen 6
G JScrollPane in der Größe bestimmen Java Basics - Anfänger-Themen 11
R JScrollpane problem Java Basics - Anfänger-Themen 21
P JScrollPane an JTextArea anhängen Java Basics - Anfänger-Themen 3
C JScrollPane ohne Rahmen? Java Basics - Anfänger-Themen 2
M JScrollPane Java Basics - Anfänger-Themen 4
G Probleme mit JScrollPane Java Basics - Anfänger-Themen 3
M JScrollPane: Autoscroll Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben