# 2 Problem mit dem ScrollPane



## Guest (26. Apr 2007)

Hallo!!

Allgemeines:
In meinem Applet ist ein JSplitPane (jSplitPane1) in dem als linke Komponente ein paar Buttons,... sind un als rechte Komponente ein ScrollPane (sp). In dem ScrollPane (sp) ist wiederum ein KartenPanel (kp). Die Klasse KartenPanel ist abgeleitet von Panel und zeichnet nur ein Bild das ich per Methode setBild festlege.


```
JSplitPane jSplitPane1 = new JSplitPane();
  ScrollPane sp = new ScrollPane();
  KartenPanel kp = new KartenPanel(sp);
  
  jSplitPane1.add(links, JSplitPane.LEFT);
  jSplitPane1.add(sp, JSplitPane.RIGHT);
  sp.add(kp);
```


```
public void setBild(Image bild) {
    this.bild = bild;
    int b = bild.getWidth(null);
    int h = bild.getHeight(null);

    setPreferredSize(new Dimension(b, h));
  }
```

1)
Das erste Problem ist mit beim ScrollPane (sp). Im Browser (sowohl IE als auch Firefox) werden die Scrollbars des ScrollPanes (sp) nicht angezeigt, obwohl sie im eingebauten Appletviewer vom JBuilder angezeigt werden und korrekt funktionieren.

Meine Fragen:
- Kann es sein, dass die Browser das ScrollPane nicht unterstützen/darstellen können? Wenn ja, was kann ich dagegen tun?
- Gibt es eine Möglichkeit, dass die Scrollbars des ScrollPanes immer angezeigt werden, egal ob das Panel zu groß ist oder nicht? (Wäre ziemlich gut zum testen!)

2)
Das zweite Problem ist, dass sich das ScrollPane (sp) zwar vergrößert, jedoch nicht mehr verkleinert, wenn ich in das Panel (kp) etwas zeichne. Nach dem Start zeichne ich eine 2000x2000 großes Bild in das Panel (kp) und setzte die preferredSize auf diese Größe (siehe Methode setBild oben). Bis jetzt funktioniert alles korrekt, d.h. das ScrollPane (sp) vergrößert sich korrekt. Danach ändere ich das Bild im Panel (kp) auf ein Bild der Größe 1000x1000, das ScrollPane (sp) bleibt jedoch unverändert gleich groß (also auf die 2000x2000), egal ob ich die size oder preferredSize vom Panel (kp) oder vom ScrollPane (sp) setze. Die einzige Möglichkeit um das ScrollPane in die richtige Größe zu bekommen ist, wenn ich das ganze Applet maximiere/verkleinere (mit dem Button neben dem "X" ganz oben links)!

mfg 

Börni
[/code]


----------



## Beni (26. Apr 2007)

Benutz dochmal "JScrollPane" anstelle von "ScrollPane", dein Applet scheint ja mit Swing zu arbeiten. Diese Änderung sollte auch 1) und 2) beeinflussen.


----------



## Guest (28. Apr 2007)

Danke, der Tipp hat mir schon mal weiter geholfen! Ich habe des das ScrollPane mit einem JScrollPane ausgetauscht, aber ich habe noch immer einen Fehler:

Egal ob ich setSize oder setPreferredSize auf das Panel oder das JScrollPane mache, das JScrollPane wird erst in der richtigen Größe angezeigt nachdem ich das Applet maximiert oder minimiert habe. Ein repaint Hilft auch nicht weiter.

Und eine Frage habe ich noch:

Wie kann ich den Ausschnitt festlegen der im JScrollPane angezeigt wird? Im ScrollPane ging das mit setScrollPosition, nur gibt es diese Methode beim JScrollPane nicht!!

mfg

Börni


----------

