JScrollPane überdeckt JPanel?

Rarzhn

Mitglied
Hallo, ich bin leider noch ein relativer Anfänger in Java und bastle gerade ein kleines Programm bei dem ich vor einem Problem stehe:

Ich habe ein Fenster mit 2 JPanels und möchte, wenn ich das Fenster kleiner ziehe als eines JPanel ist,
dass dieses mit einem JScrollpane ausgestattet wird um das gesamte Panel verfügbar machen zu können. Normalerweise hat das Panel eine braune Farbe Wenn ich das JScrollPane einfüge, scheint es so, als ob dieses das komplette Panel überdeckt, da das Panel grau ist (Schaltflächenfarbe). Ich weiss gerade leider nicht, wo der Fehler liegt und habe auch im Internet keine passenden Hinweise gefunden :/ Evtl suche ich auch einfach nach den falschen Stichworten :D
Ich habe hier einmal folgenden Code

Java:
...
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
panelZeichnen = new JPanel();
panelZeichnen.setBackground(new Color(255, 250, 205));
panelZeichnen.setBounds(0, 0, 800, 800);
contentPane.add(panelZeichnen);
panelZeichnen.setLayout(new BorderLayout(0, 0));
		
scrollPane = new JScrollPane();
scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
panelZeichnen.add(scrollPane, BorderLayout.CENTER);
...

Bestimmt nur ein blöder Fehler, den ich durch meinen Tunnelblick aber gerade einfach nicht finde ~~
Kann mir jemand helfen?
Lg
 
Zuletzt bearbeitet:

strußi

Top Contributor
hast du die ScrollPane visible gesetzte?

Java:
 JScrollPane jsp = new JScrollPane( JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        jsp.setViewportView( panel); //Panel an ScrollPane übergeben
        frame.getContentPane().add( jsp); //ScrollPane, dass das Panel hält an Frame übergeben
        jsp.setVisible(true); //ScrollPane sichtbar machen
 
Zuletzt bearbeitet:

Rarzhn

Mitglied
leider hat mich das nicht wirklich weiter gebracht.
Ich habe mehrere Varianten probiert (auch unter Beherzigung des Links) aber habe nach wie vor das gleiche Problem...
Sobald ich das ScrollPane einbinde, wird das gesamte Panel grau, als ob es überdeckt sein würde.
Lässt sich eventuell über einen Messenger, o.ä. Kontakt mit jemandem herstellen, der mir da helfen kann?
Ich scheine da die grundsätzliche Funktionsweise des ScrollPanes nicht ganz zu verstehen :/

Lg
 

Rarzhn

Mitglied
Java:
public class SwingGUI extends JFrame {

	private JPanel contentPane;
	private JPanel panelZeichnen, panelFunktion;
	private JScrollPane scrollPane;
        ....


	public SwingGUI() {
		
		super("Test");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Toolkit.getDefaultToolkit().setDynamicLayout(true);
		setBounds(100, 100, 1150, 827);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		panelZeichnen = new JPanel();
		panelZeichnen.setBackground(new Color(255, 250, 205));
		panelZeichnen.setBounds(0, 0, 800, 800);
		contentPane.add(panelZeichnen);
		panelZeichnen.setLayout(new BorderLayout(0, 0));
		
		/*scrollPane = new JScrollPane(panelZeichnen);
		scrollPane.setPreferredSize(new Dimension (10, 10));
		scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
		add(scrollPane, BorderLayout.CENTER);
		scrollPane.setVisible(true);*/     // ScrollPane habe ich derzeit auskommentiert um weiter arbeiten zu können..
		
		panelFunktion = new JPanel();
		panelFunktion.setBounds(810, 0, 331, 562);
		contentPane.add(panelFunktion);
		GridBagLayout gbl_panelFunktion = new GridBagLayout();
		gbl_panelFunktion.columnWidths = new int[] {50, 30, 50, 30, 7, 50, 0, 0};
		gbl_panelFunktion.rowHeights = new int[]{23, 23, 86, 14, 23, 23, 58, 23, 20, 84, 23, 53, 23, 0};
		gbl_panelFunktion.columnWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
		gbl_panelFunktion.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
		panelFunktion.setLayout(gbl_panelFunktion);
		
		//...hier zwischen werden in panelFunktion ein Haufen Buttons, Textboxes, etc hinzugefügt. Habe ich der Übersicht halber heraus genommen, da diese ja nichts mit dem panelZeichnen zu tun haben..

		panelFunktion.setVisible(true);
		panelZeichnen.setVisible(true);

So sieht die initialisierung des Fensters und der Panels derzeit aus :) Habe mir das ganze auch mit WindowBuilder angesehen und dort kann man tatsächlich auch sehen, dass, sobald ich das ScrollPane in das Panel einfüge, das Feld komplett mit dem ScrollPane scheinbar überdeckt wird.
Hoffe, das hilft ein wenig ><
 

censored

Mitglied
Ich glaube du verstehst noch nicht ganz, wie das mit den JScrollPanes funktioniert. Dein JPanel muss die View des JScollPanes sein, das heisst dein JPanel ist im JScrollPane. Du kannst kein JPanel mit einem JScrollPane ausstatten, sondern das JPanel muss im JScrollPane sein. Du kannst dir das JScrollPane vorstellen wie ein JPanel, welches ScrollBars erhält, wenn der Inhalt grösser als das JScrollPane selbst wird. Schau vielleicht doch nochmals in den Link von Harry Kane.
 

Harry Kane

Top Contributor
@Rarzhn: Bei deinem letzten Codebeispiel fügst du JScrollPane direkt dem JFrame hinzu, und keinem der panels. Warum dies? Letztlich sollte das nix ausmachen, denn JFrame.add(Component c) ist meines Wissens nach nur ein Shortcut für JFrame.getContentPane().add(Component c), so daß die JScrollPane eigentlich wieder auf dem contentPane landen sollte. Da du die bounds von der JScrollPane nicht setzt, und contentPane ein Null-Layout hat, dürfte eigentlich gar nix zu sehen sein. Das heisst, dein panelZeichnen wird wahrscheinlich gar nicht von der JScrollPane verdeckt, sondern geht zusammen mit der unsichtbaren JScrollPane unter. Dein panelZeichnen hat scheinbar auch keine preferredSize, worauf dei JScrollPane schauen könnte. Das setzen der bounds reicht offenbar nicht aus, damit die JScrollPane wissen kann, wieviel Platz sie für das panelZeichnen zur verfügung stellen soll.
Hier ist ein kurzes Beispiel, wie man eine JScrollPane nutzen kann:
Java:
public class ScrollPaneDemo {
    
    public static void main(String[] args){
        JFrame main = new JFrame();
        JScrollPane centerPane = new JScrollPane(new ColorArea(new Dimension(800, 400), Color.red));
        main.getContentPane().add(centerPane);
        JScrollPane leftPane = new JScrollPane(new ColorArea(new Dimension(200, 600), Color.blue));
        main.getContentPane().add(leftPane, BorderLayout.WEST);
        main.pack();
        main.setVisible(true);
        main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    static class ColorArea extends JComponent{
        private Color color;
        public ColorArea(Dimension size, Color color){
            this. color = color;
            setPreferredSize(size);
        }
        public void paintComponent(Graphics g){
            g.setColor(color);
            g.fillRect(0, 0, super.getPreferredSize().width, super.getPreferredSize().height);
        }
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
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
G Swing Höhe des View eines JScrollPane fest auf Höhe des JScrollPane setzen! AWT, Swing, JavaFX & SWT 4
A JScrollPane AWT, Swing, JavaFX & SWT 16
C Swing JScrollPane und Scroll-Geschwindigkeit AWT, Swing, JavaFX & SWT 8
S JScrollpane mit JPanel und Probleme AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben