JScrollPane aber Scrollbars nicht sichtbar! *grrrrr*

Status
Nicht offen für weitere Antworten.

julchen81

Bekanntes Mitglied
Guten Morgen!

Hätte eine ähnliche Frage schon im Anfängerforum gestellt, aber bis jetzt hat's mir nicht weitergeholfen. Vielleicht klappt's ja hier.
Ich möchte ein Fenster mit GridBagLayout erstellen und über den gesamten Bereich Scrollbars haben. Ich nehme also den Container mit getContentPane(), setze das Layout dieses Containers auf GridBagLayout, erstelle eine JScrollPane und führe dann JScrollPane.setViewportView(Container) aus. Aber ich kriege keine Scrollbars! ???:L
Das wäre mein gesamter Code bisher:

Code:
import javax.swing.*;
import java.awt.Container;
import java.awt.*;

public class GI extends JFrame {
	
	public GI() {
		super ("das");
		Container co = getContentPane();
		co.setLayout(new GridBagLayout());
		JScrollPane sbp = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		sbp.setViewportView(co);
	}
}

und die Klasse mit der main-Methode:
Code:
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.*;

import javax.swing.JLabel;
import javax.swing.JScrollBar;
import java.awt.Container;

public class Main {

	public static void main(String[] args) {
		GI gi = new GI();
		gi.setSize(200, 200);	
		gi.setVisible(true);
		gi.setLocation(400, 400);
	}
}

Hoffe, mir kann jemand weiterhelfen.

LG Julia
 

julchen81

Bekanntes Mitglied
Jetzt hab ich so einen Gedanken... kann es vielleicht sein, dass ein Container keine scrollbare Komponente ist und es deshalb nicht funktioniert?

Julia
 

julchen81

Bekanntes Mitglied
So ganz verstehe ich das nicht... hätte jetzt folgendes probiert (auch schon in unterschiedlichen Reihenfolgen):
Code:
import javax.swing.*;
import java.awt.*;

public class GI extends JFrame {
	
	public GI() {
		super ("das");
		Container co = getContentPane();
		co.setLayout(new GridBagLayout());

		GridBagConstraints gbc = new GridBagConstraints();
		gbc.fill = GridBagConstraints.BOTH;
		gbc.weightx = 1.0;
		gbc.weighty = 1.0;
		
		JScrollPane sbp = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		sbp.setViewportView(co);
	}
}

Aber Ergebnis bleibt ohne ScrollBars... :(

Danke für deine Hilfe!
Julia
 
S

SlaterB

Gast
sbp wird überhaupt nicht in deine GUI eingefügt
(was dir dann wahrscheinlich einen Beig Exceptions bringen würde)

adde das sbp zum ContentPane,
aber setzt nicht das ContentPane in das sbp, sondern ein neues anderes JPanel
 

MathiasBauer

Bekanntes Mitglied
Damit sollte es gehen:

Code:
public class GI extends JFrame {
   
   public GI() {
      super ("das");
      JPanel panel = new JPanel();
      panel.setPreferredSize(new Dimension(100,100));
      panel.setBackground(Color.green);
      JScrollPane sbp = new JScrollPane(panel);
      sbp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
      sbp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
      add(sbp);
   }
}


Du kannst aber statt:

Code:
   sbp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
   sbp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

auch einfach die PreferredSize vom Panel größer als des Frames setzen.

Code:
   panel.setPreferredSize(new Dimension(220,220));
 

L-ectron-X

Gesperrter Benutzer
Funktionierendes Demo:
Code:
import java.awt.*;
import java.net.*;
import javax.swing.*;

public class JScrollPaneDemo extends JFrame {
   public JScrollPaneDemo(String title) {
      super(title);
      Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
      setSize((int)dim.width*50/100, (int)dim.height*50/100);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
      URL iconURL = null;
      try {
         iconURL = new URL("http://www.wallpaper-area.to/wallpaper/8/24/Delfine_010.jpg");
      }
      catch(MalformedURLException e) {
         e.printStackTrace();
      }
      
      JLabel icon = new JLabel(new ImageIcon(iconURL));
      
      add(new JScrollPane(icon));
   }

   public static void main(String[] args) {
      new JScrollPaneDemo("JScrollPaneDemo").setVisible(true);
   }
}
 

julchen81

Bekanntes Mitglied
wir nähern uns!!

Zumindest kann ich jetzt zwei winzige Scrollbars erkennen ... :wink:

Code:
import javax.swing.*;
import java.awt.*;

public class GI extends JFrame {
	
	public GI() {
		super ("das");
		Container co = getContentPane();
		JPanel p = new JPanel();
		co.setLayout(new GridBagLayout());

		GridBagConstraints gbc = new GridBagConstraints();
		gbc.fill = GridBagConstraints.BOTH;
		gbc.weightx = 1.0;
		gbc.weighty = 1.0;
		
		JScrollPane sbp = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		co.add(sbp);
		sbp.setViewportView(p);
	}
}

Jetzt wenn ich das JPanel p noch so groß kriegen würde wie den gesamten Container co, dann würd's doch hinhauen, oder?

Und falls ich Recht hab, wie würd das dann bitte gehen... ???:L :wink:
p = co; geht nicht, TypeMissMatch.
Und ich habe auch keinen Konstruktor von JPanel gefunden, in der man Größe oder Ähnliches angeben könnte. Auch die Methoden sind nicht wirklich ergibig... p.setSize(200, 200) beeindruckt mein Ergebnis nicht.
 

MathiasBauer

Bekanntes Mitglied
1. Schau dir die Beispiele oben nochmal an.

2. Lass den Container und ViewportView ganz weg.

3. Die Größe des Panels beeinflusst du mit p.setPreferredSize(new Dimension(200,200).
 

L-ectron-X

Gesperrter Benutzer
Du musst dem GridBagLayout noch verraten, wie es die Komponente anordnen soll.
Dazu müssen die GridBagConstraints übergeben werden.

Code:
import javax.swing.*; 
import java.awt.*; 

public class GI extends JFrame { 
    
   public GI() { 
      super ("das"); 
      Container co = getContentPane(); 
      co.setLayout(new GridBagLayout()); 

      JPanel p = new JPanel(); 
      p.setBackground(Color.RED);

      GridBagConstraints gbc = new GridBagConstraints(); 
      gbc.fill = GridBagConstraints.BOTH; 
      gbc.weightx = 1.0; 
      gbc.weighty = 1.0; 
       
      JScrollPane sbp = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
      co.add(sbp, gbc); // <== diese Zeile beachten!
      sbp.setViewportView(p); 
   } 
}

Dann wird die JScrollPane auf Fenstergröße "aufgeblasen".
Damit auch noch die Scrollbalken zu sehen sind, muss nun das Panel größer sein, als die von der JScrollPane bereitgestellte sichtbare Fläche.
 

julchen81

Bekanntes Mitglied
Mich haut's gleich um... daaaaannnnnkkeeee!!!!!!!!!!!!! :wink:

Jetzt hatte es mich aber schon gewaltig genervt. Puh.

Wünsch dir ein schönes Wochenende!
Julia
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C sorry aber JScrollPane mit JTextArea AWT, Swing, JavaFX & SWT 4
D JScrollPane aktualisieren, aber wie? AWT, Swing, JavaFX & SWT 3
M auch JScrollPane aber mit Zoomen, wie wird der View gesetzt AWT, Swing, JavaFX & SWT 2
volcanos Scrollen: JScrollPane mit Graphics g und Java-Fonts extends Frame ? AWT, Swing, JavaFX & SWT 5
E JScrollPane mit JPanel verbinden AWT, Swing, JavaFX & SWT 1
B Swing JScrollPane scrollt nicht AWT, Swing, JavaFX & SWT 10
P JTextarea (in JScrollPane) zeigt nur die beiden letzten Einträge an? AWT, Swing, JavaFX & SWT 0
O Swing "Eigenes" JPanel wird dem JScrollPane nicht hinzugefügt AWT, Swing, JavaFX & SWT 5
E Komponenten von JScrollPane werden nicht richtig ermittelt AWT, Swing, JavaFX & SWT 2
E wie in JScrollPane auf JTextArea zugreifen AWT, Swing, JavaFX & SWT 12
N Swing JScrollPane mit Tastatur bedienen? AWT, Swing, JavaFX & SWT 0
F JScrollPane anzeige AWT, Swing, JavaFX & SWT 7
K Swing JScrollPane wird nicht angezeigt wenn man Components darstellt. AWT, Swing, JavaFX & SWT 2
M Swing JPanel in JScrollPane AWT, Swing, JavaFX & SWT 3
M Problem mit Add JScrollPane AWT, Swing, JavaFX & SWT 25
P Swing JEditorPane in Kombination mit JScrollPane AWT, Swing, JavaFX & SWT 29
S Swing jScrollPane - pro Eintrag der Liste, die jCheckBoxes Speichern die in dem Eintrag aktiviert wurden AWT, Swing, JavaFX & SWT 2
T Swing Probleme mit repaint() bzw. JScrollPane AWT, Swing, JavaFX & SWT 7
D JScrollPane in JTabbedPane AWT, Swing, JavaFX & SWT 3
MaxG. Swing JScrollPane AWT, Swing, JavaFX & SWT 10
Soloeco Swing JScrollPane AWT, Swing, JavaFX & SWT 6
A Swing Probleme mit dem adden von JButtons zur JScrollPane AWT, Swing, JavaFX & SWT 2
A JScrollPane soll JPanel mit JButtons enthalten und eine Scollbar anzeigen AWT, Swing, JavaFX & SWT 1
J JScrollPane funktioniert nicht AWT, Swing, JavaFX & SWT 5
B LayoutManager GridBagLayout und JScrollPane AWT, Swing, JavaFX & SWT 5
Thallius JScrollPane Scrollpos setzen nach Neuzeichnen AWT, Swing, JavaFX & SWT 3
P MalProgramm mit JScrollPane und Canvas AWT, Swing, JavaFX & SWT 2
D Swing JScrollPane Tabelle ändern (2 Tabellen) AWT, Swing, JavaFX & SWT 7
U JScrollPane -> JTabbedPane u.A. AWT, Swing, JavaFX & SWT 3
A Layout-Manager, JScrollPane, ... Chaos AWT, Swing, JavaFX & SWT 5
V JScrollPane im zur Laufzeit verändernden JFrame AWT, Swing, JavaFX & SWT 0
W Swing Größenänderung vom JPanel im JScrollPane und anschließendes positionieren AWT, Swing, JavaFX & SWT 2
X Swing JButton's zum JScrollPane hinzufügen geht nicht. Bitte um Hilfe. AWT, Swing, JavaFX & SWT 9
G JTextArea mit JScrollPane wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
K Swing JScrollPane - JScrollBar anzeigen, wenn Frame verkleinert wird AWT, Swing, JavaFX & SWT 3
N Swing Problem beim Scrollen mit JScrollPane AWT, Swing, JavaFX & SWT 6
Bluedaishi JScrollpane AWT, Swing, JavaFX & SWT 0
L JScrollPane scrollt nicht !! AWT, Swing, JavaFX & SWT 3
F JScrollPane Position setzen (x=0, y=0) AWT, Swing, JavaFX & SWT 2
R JScrollPane überdeckt JPanel? AWT, Swing, JavaFX & SWT 7
H JTree in JScrollPane passt sich nicht an Größe von JPanel an AWT, Swing, JavaFX & SWT 2
S JScrollPane und BorderLayout AWT, Swing, JavaFX & SWT 1
M Mehrere Jpanel in einem JScrollPane (Layout) AWT, Swing, JavaFX & SWT 2
W Swing JScrollPane für mein Fenster AWT, Swing, JavaFX & SWT 4
A Swing Probleme mit JScrollPane AWT, Swing, JavaFX & SWT 6
F JTable mit JScrollPane AWT, Swing, JavaFX & SWT 4
I JPanel in JScrollPane verkleinert sich leider nicht .... AWT, Swing, JavaFX & SWT 2
G JScrollPane bricht am Ende der Anzeige nicht um AWT, Swing, JavaFX & SWT 2
J Swing JTextPane mit JScrollPane auf JPanel scrollen nicht AWT, Swing, JavaFX & SWT 6
W Sichtbarer Bereich JScrollPane vs. JList AWT, Swing, JavaFX & SWT 3
B Swing JPanel in JScrollPane einfügen AWT, Swing, JavaFX & SWT 2
S 2D-Grafik Transparentes JScrollPane AWT, Swing, JavaFX & SWT 0
S 3D-Grafik 3d Grafik auf einem JPanel oder im JScrollPane AWT, Swing, JavaFX & SWT 1
R Ändern Default-Verhalten von JScrollpane in einer JScrollpane AWT, Swing, JavaFX & SWT 1
S JScrollPane --> Programm hängt sich beim scrollen auf AWT, Swing, JavaFX & SWT 2
A JScrollPane - ScrollBar Buttongröße verändern AWT, Swing, JavaFX & SWT 1
J Bilder auf JPanel (im JScrollPane) nacheinander laden AWT, Swing, JavaFX & SWT 0
A Swing JScrollPane Problem AWT, Swing, JavaFX & SWT 6
H Swing JScrollPane mit "viel Inhalt" scrollt zu langsam (inkl. See-For-Yourself.jar :D) AWT, Swing, JavaFX & SWT 2
T Swing JScrollPane in JPanel - Breite dynamisch, Höhe fix - wie? AWT, Swing, JavaFX & SWT 2
D Swing JScrollPane in JScrollPane - Problem AWT, Swing, JavaFX & SWT 3
K Bug in JScrollPane? AWT, Swing, JavaFX & SWT 4
T Swing JScrollPane Farbe der Scrollbar AWT, Swing, JavaFX & SWT 3
M JScrollPane Header AWT, Swing, JavaFX & SWT 3
G JScrollPane über JScrollPane AWT, Swing, JavaFX & SWT 2
V LayoutManager JScrollPane verwirft Elementanordnung AWT, Swing, JavaFX & SWT 3
B JScrollPane Problem AWT, Swing, JavaFX & SWT 2
D Swing JScrollPane AWT, Swing, JavaFX & SWT 7
H cardlayout und jscrollpane AWT, Swing, JavaFX & SWT 14
F 2D-Grafik Skalieren der Scrollbars beim Zoomen einer JScrollPane AWT, Swing, JavaFX & SWT 4
B JScrollPane Horizontal klappt nicht. AWT, Swing, JavaFX & SWT 4
G JScrollPane reagiert nicht auf Änderung der JPanel-Größe AWT, Swing, JavaFX & SWT 4
C jPanel auf jScrollPane zentrieren AWT, Swing, JavaFX & SWT 3
M Swing JScrollPane (Parent JTextArea) aktualisieren + neue Zeile AWT, Swing, JavaFX & SWT 5
U Swing JPane und JScrollpane in JSplitpane-Seite: Scrollen funktioniert nicht AWT, Swing, JavaFX & SWT 3
A Swing Korrekte JTable.rowAt(point) für JTable in JScrollPane AWT, Swing, JavaFX & SWT 5
D Label über JScrollPane AWT, Swing, JavaFX & SWT 3
S JScrollPane reagiert nicht AWT, Swing, JavaFX & SWT 3
X JScrollPane zu JTable hinzufügen AWT, Swing, JavaFX & SWT 16
H JScrollPane - JEditorPane und HTML-Tabelle AWT, Swing, JavaFX & SWT 2
D LayoutManager JScrollPane mit dynamischem Inhalt AWT, Swing, JavaFX & SWT 8
P Swing JScrollpane AWT, Swing, JavaFX & SWT 2
B JScrollPane scrollt nicht immer automatisch AWT, Swing, JavaFX & SWT 2
V Swing JScrollPane Viewport verschieben AWT, Swing, JavaFX & SWT 2
J JScrollPane Probleme AWT, Swing, JavaFX & SWT 3
S Swing JScrollPane verliert Scrollbars AWT, Swing, JavaFX & SWT 5
D Swing JTable in JScrollpane beliebig verbreitern AWT, Swing, JavaFX & SWT 5
A Swing Anzeige Text in JScrollpane AWT, Swing, JavaFX & SWT 8
J Swing Unteren Abstand für JTable in JScrollPane festlegen AWT, Swing, JavaFX & SWT 10
xehpuk Swing Line-wrapping von JTextPane (in JScrollPane) AWT, Swing, JavaFX & SWT 3
M JScrollPane Problem AWT, Swing, JavaFX & SWT 6
S Swing JScrollpane und ViewPort AWT, Swing, JavaFX & SWT 4
D JScrollPane funktioniert nicht AWT, Swing, JavaFX & SWT 12
X JScrollPane funzt net... AWT, Swing, JavaFX & SWT 5
H jscrollpane AWT, Swing, JavaFX & SWT 12
RELAXccc Swing JTree + JScrollPane, refresh Problem AWT, Swing, JavaFX & SWT 17
A Problem mit JScrollPane in einer JScrollpane AWT, Swing, JavaFX & SWT 4
B JScrollPane Problem AWT, Swing, JavaFX & SWT 25
T Swing JScrollPane- und Tabelle-Header Problem AWT, Swing, JavaFX & SWT 25
P Swing JScrollPane-Inhalt: Grösse anpassen AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben