JScrollPane mit JLabel



  • ich habe folgenden Code für eine eigene Komponente geschrieben:

    import javax.swing.*;
    import java.awt.*;
    
    public class VIPCanvas extends JScrollPane {
    
      private JPanel panel;
    
      public VIPCanvas() {
        super();
        panel = new JPanel(null);
        panel.setBackground(Color.blue);
        setViewportView(panel);
      }
    
      public void groesser() {
        panel.setSize(300,300);  //bewirkt nichts !
      }
    }
    

    Die Klasse funktioniert in soweit, als das sie mir ein blaues Rechteck
    auf mein JFrame zeichnen kann.
    Allerdings möchte ich, dass ich den Bereich innerhalb der Scrollfläche
    größer wird, wenn ich die Methode groesser() aufrufe und das klappt nicht.

    Endergebnis soll später ein ScrollPane sein, in das ich während der
    Laufzeit TextFields einbauen kann und dass sich halt vergrößert, falls
    nicht mehr alle draufpassen.

    (Falls irgendjemand die Frage selbst für nicht angemessen hält sie hier
    zu posten, würde ich mich auch freuen zu erfahren, wie ich das Problem
    sonst lösen soll.)



  • http://java.sun.com/docs/books/tutorial/uiswing/components/scrollpane.html

    Unter "Dynamically Changing the Client's Size". Vielleicht solltest du auch mal das Tutorial insgesamt lesen.



  • public void groesser() {
       panel.setPreferredSize(new Dimension(300,300));
       panel.revalidate();
    }
    

    Danke.


Anmelden zum Antworten