JSplitPane - auf Änderung reagieren

LatinFavourite

Bekanntes Mitglied
Guten Abend zusammen,

ich versuche gerade ein Layout umzusetzen und habe bei der Umsetzung ein Problem. Der Grundaufbau besteht aus einer JSplitPane. Auf dessen linken Seite lade ich mehre Grafiken hinein, diese sollen untereinander angezeigt werden. Das funktioniert auch soweit, jedoch möchte ich auf das Verändern der JSplitPane reagieren. Die Grafiken sollen also größer werden aber noch immer untereinander sein. Bis jetzt hat eine Grafik eine Standardgröße von 100*100.

Java:
import java.awt.Color;
import java.awt.GridLayout;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;

public class View extends JFrame{
   
    private JSplitPane split;
    private JPanel imageContainer;
    private JPanel imageView;
   
   
   
    public View(){
        super("Layout");
        setSize(800, 600);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   
       
        imageContainer = new JPanel(new GridLayout(20,1));
       
       
        imageView = new JPanel();
        imageView.setBackground(Color.RED);
       
        JScrollPane scroll = new JScrollPane(imageContainer, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
       
       
        ImagePanel panel;
        for(int i=0; i<10; ++i){
            panel = new ImagePanel();
            imageContainer.add(panel);
        }
       
       
       
        split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, scroll, imageView);
        split.setDividerLocation(120);
       
       
        add(split);
       
       
       
   
        setVisible(true);
    }
}
 
Super, schon einmal vielen Dank für den Vorschlag. Wie halte ich das aber effizient. Wenn ich beispielsweise 50 Grafiken in die Leiste lade, wie kann ich dann bei jedem einzelnen auf die Größe reagieren. Bei den Grafiken handelt es sich um JComponents.

Habe einen ComponentListener hinzugefügt, jedoch gibt dieser immer die gleiche Größe aus. Das Panel ändert seine Größe nicht.
 
Zuletzt bearbeitet:
den componentlistener, hast du den den grafiken oder dem splitpane zugefügt?
meine idee wäre gewesen, es dem container hinzuzufügen, dem die bilder geadded wurden
 
Danke für die Rückmeldung. Habe es erst der SplitPane hinzugefügt, aber das hat Probleme verursacht. Habe es nun dem Panel hinzugefügt und die Methode getPreferredSize überschrieben. Jetzt ist es so, wie ich es mir vorgestellt habe. Zusätzliche nutze ich nun das BoxLayout, um die Grafiken untereinander anzuzeigen.
 

Zurück
Oben