JPanel und JScrollPane

Pherseus

Erfahrenes Mitglied
Ich habe folgenden (vereinfachten) Programmcode:

Code:
import java.awt.Graphics;

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

public class Scroll extends JFrame {
    public Scroll() {
        super("interaktive Testumgebung für UnionFind");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        Panel panel = new Panel();
        JScrollPane scrollPane = new JScrollPane(panel);
        getContentPane().add(scrollPane);
        pack();
        setVisible(true);
    }
    
    public static void main(String[] args) {
        new Scroll();
    }

}

class Panel extends JPanel {
    protected void paintComponent( Graphics g ) {
        g.drawOval( 100, 100, 25, 25);
    }
}

Wenn ich das nun ausführe, ist das Oval ausserhalb des Sichtbereichs, es werden aber keine Scrollbalken angezeigt. Jemand eine Idee, warum dies so nicht geht, also wie ich es schaffe, dass ich Scrollbar bekomme?
 
Hi,

die JScrollPane richtet sich nach der PrefferedSize seiner View-Komponente:
Code:
class Panel extends JPanel {
    protected void paintComponent( Graphics g ) {
        g.drawOval( 100, 100, 25, 25);
    }

    @Override
    public Dimension getPreferredSize() {
        return new Dimension(125, 125);
    }
}
 
Zurück