tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
574
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Utopist Utopist ist offline Grünschnabel
    Registriert seit
    Aug 2004
    Beiträge
    4
    Hi!

    Mein erster Post in diesem Forum ist leider schon eine Frage, hoffe das der nächste dies nicht sein wird / muss...

    Ich hab mit Swing eine GUI für ein Programm erstellt, nun möchte ich gerne, dass
    wenn ich das Fenster vergrößer / verkleiner, mein Layout wieder hergestellt wird.
    So hab ich z.B. in der Mitte des gesamten JFrames ein JSplitPane und nach dem Verändern der Fenstergröße ist dies nicht mehr in der Mitte. Als LayoutManager benutze ich GridBagLayout.

    Hab schon gegoogelt, verschiedene Foren durchforstet nur irgendwie find ichs nicht. Wär toll, wenn mir jemand helfen könnte.

    Danke
    -Utopist
     

  2. #2
    Registriert seit
    Apr 2004
    Ort
    Ruhrgebiet
    Beiträge
    1.582
    Hm, klingt komisch, könnte aber davon abhängen, wie Du das GridBagLayout benutzt. Auch hier wäre der relevante Code interessant.
     

  3. #3
    Utopist Utopist ist offline Grünschnabel
    Registriert seit
    Aug 2004
    Beiträge
    4
    Nun, ich will eigentlich bloß das Layout wieder neu aufbauen, wenn das Fenster
    vergrößert oder verkleinert wird. Ich dachte schon an sowas wie repaint() mit nem ComponentListener oder sowas in der Art, obwohl ich dazu noch nix gefunden hab.

    Also ich hab eine Klasse DividerComponent (erbt von JPanel), die besteht aus folgendem:

    Code :
    1
    2
    3
    4
    5
    
    DarstellungsTabelle table;   //extends JTable
    JScrollPane fileView;
    PartitionDropDownMenu partitionDrop;
    JLabel VerzeichnisLabel;
    GridBagLayout layout;

    Soweit so, gut, das Ding ist per GridBag angeordnet.

    Diese Komponente füge ich folgendermassen ein:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    
                             /* Layout fürs Fenster*/
            gbl = new GridBagLayout();
            this.getContentPane().setLayout(gbl);
            
            /*Die beiden Darstellungen links und rechts werden erzeugt*/
            leftComponent = new DividerComponent(linkerBaum.getDatenAlsTabelle(),linkerBaum.getPath());
            rightComponent = new DividerComponent(rechterBaum.getDatenAlsTabelle(),rechterBaum.getPath());      
     
            /*Die Teilung des Fensters wird herbeigeführt, HORIZONTAL_SPLIT bedeutet das das Fenster
             * horizontal geteilt wird, false als nächster Parameter bestimmt, das die beiden Components
             * links und rechts beim Verscheiben des Sliders nicht neu gezeichnet werden
             */
            trenner = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,false);
                            
            /*Fügt die beiden Elemente links und rechts auf das SplitPane*/
            trenner.setLeftComponent(leftComponent);
            trenner.setRightComponent(rightComponent);
            
            
            /*setzt die Grösse des Trennbalkens*/
            trenner.setDividerSize(5);
            /*Ein Rand wird um das SplitPane gezeichnet*/
            trenner.setBorder(new EmptyBorder(5,5,5,5));
            
            /*Ermittelt die Grösse des Frames und setzt den Divider in die Mitte*/
            Dimension d = this.getSize();
            trenner.setDividerLocation((int)d.getWidth()/2);
            
            /*Die Buttonleiste am unteren Rand des Fensters, zur Zeit mit testInhalt*/
            String[] inh = {"","","","","","","","","","","","Verlassen"};
            Buttons buttonleiste = new Buttons(inh);
                    
            //Elemente auf das RootPane packen
            //(frame,Grid Back Layout,Object,Spalte,Zeile,Spalten binden,Zeilen binden,Skalierung Höhe,Skalierung Breite);
            addComponent(this,gbl,trenner,1,1,4,1,1,1);
            addComponent(this,gbl,buttonleiste,1,5,2,2,0,0);

    Die Methode addComponent fügt die Elemente in des GBL ein. Will die mir mal sparen, um nicht zuviel Code hierhinein zu posten.

    Ich hoffe das hilft weiter damit du/ihr mir weiterhelfen könnt.

    Gruß,
    -Utopist
     

Ähnliche Themen

  1. Verschossene Psd Dateien wieder herstellen?
    Von Vale-Feil im Forum Photoshop
    Antworten: 3
    Letzter Beitrag: 27.10.05, 19:57
  2. Dateien wieder herstellen?
    Von Krankes-Kaff im Forum Microsoft Windows
    Antworten: 1
    Letzter Beitrag: 31.05.04, 12:53
  3. Dantenbank wieder herstellen
    Von MasterG im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 12.12.01, 14:13
  4. fehlende flächen wieder herstellen, wie****?
    Von martworx im Forum 3D Studio Max
    Antworten: 2
    Letzter Beitrag: 16.09.01, 13:30
  5. Assitstenten wieder herstellen (Acces)
    Von flohhh im Forum Office-Anwendungen
    Antworten: 0
    Letzter Beitrag: 10.09.01, 00:36