carookee - group communication for you
Home / JavaForum / Beginner
Infos   |   Features   |   Gold-Edition   |   Kundenservice   
java
  Übersicht
  Forum
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
  Mitglieder
LOGIN





· Passwort vergessen
· Kostenlos anmelden
  Information
  Demo
  Features
  Im Vergleich
  Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
  Kundenservice
  Impressum
  Datenschutz
  AGB
Status
6.064 User online
0 User eingeloggt
 

Beiträge
   Antworten     Neuer Beitrag    

Beitrag 11 von 2963 (0%) |<   <   >   >|

Autor Nick
Datum 29.10.08, 11:26
Betreff ScrollPane passt sich nicht an


Hallo,
ich habe folgendes Problem.

Ich erstelle eine ScrollPane und möchte mit der Paint-Methode beispielsweise 500
Wörter untereinanderschreiben.
Die ScrollPane soll sich natürlich anpassen.
Nun das Problem:
Die ScrollPane passt sich erst dann an, wenn ich mit der Maus die Größe des Fenster ändere.

Ich vermute, dass in der Klasse Viewer(Siehe Code) getPreferredSize nur am Anfang aufgerufen wird.

Zur Veranschaulichung noch kurz der Code:

import java.awt.*;
import java.awt.event.*;

public class Example2210
extends Frame
{
    
    public static void main(String[] args)
    {
        
        Example2210 wnd = new Example2210();
        wnd.setLocation(200,100); //Windowsposition festlegen
        wnd.setVisible(true);
    }
    
    public Example2210()
    {
        super("Example2210");
        setBackground(Color.WHITE);
        //ScrollPane für die automatische Anpassung der Scrollbar
        ScrollPane sc = new ScrollPane(ScrollPane.SCROLLBARS_AS_NEEDED);
        sc.add(new Viewer());
        sc.getVAdjustable().setUnitIncrement(1);
        sc.getHAdjustable().setUnitIncrement(1);
        sc.setSize(200,200); //Startgröße festlegen
        add(sc);
        sc.setPreferredSize(new Dimension(200,700));
        add(sc);
        
        //Window-Listener
        addWindowListener(
        new WindowAdapter() {
            public void windowClosing(WindowEvent event)
            {
                setVisible(false);
                dispose();
                System.exit(0);
            }
        }
        );
        //Dialogelement anordnen
        
        pack();
        
    }
}
class Viewer
extends Canvas
{
    
    int i;
    
    public void paint(Graphics g)
    {
        for(i = 0; i<500; i++)
        {
             g.drawString("hallo" + i,30,30+20*i);
        }
        
    }
    
    public Dimension getPreferredSize()
    {
        
        return new Dimension(150,16 + i* 20); //Pro zeile müssen 20 zur Verfügung gestellt werden
        
    }
    
}



 Auf diesen Beitrag antworten
 Neuen Beitrag verfassen


|<   <   >   >|

                                                                                                                                                                                                                           

Impressum  · Datenschutz  · AGB  · Infos  · Presse
Ein modernes Forum: teamturn.com