Hilfe bei Layoutmanager



  • Hallo,
    ich möchte ein kleines Java Programm schreiben, daß aus einem JFrame mit folgender aufteilung besteht.

    -----------------------------
    |         |                   |
    |         |                   | 
    |         |                   |
    |         |                   |
    |         |                   |
     -----------------------------
    

    Die erste Spalte soll immer 200 Pixel breit sein und die zweite logischer Weise die restliche Breite des Frames einehmen. Ich habe leider keinen Layoutmanager gefunden mit dem ich das realisieren kann. Hat jemand eine Idee? Ich bin für jeden Vorschlag dankbar.

    --
    Gruß Marco



  • Hi,

    Du nimmst einfach ein BoxLayout und addest z.B. zwei Panles. Dann setzt Du die minimal- und maximal-Breite des linken Panels einfach auf einen Wert von 200 und schon sollte es sich beim vergrößern oder verkleinern des gesamten Fensters nicht mehr veränden. Also z.B.:

    /*...*/
    
    /* Layout setzen */
    getContentPane().setLayout(new javax.swing.BoxLayout(getContentPane(), javax.swing.BoxLayout.X_AXIS));
    
    /*...*/
    
    /* Zuerste das Linke Panel */
    panelLinks.setMaximumSize(new java.awt.Dimension(200, 32767));
    panelLinks.setMinimumSize(new java.awt.Dimension(200, 10));
    panelLinks.setPreferredSize(new java.awt.Dimension(200, 10));
    getContentPane().add(panelLinks);        
    
    /* Und dann das Rechts */
    getContentPane().add(panelRechts);
    
    /*...*/
    

    Hoffe das hilft 😉



  • Danke für die schnelle Antwort. Funktioniert einwandfrei.

    --
    Gruß Marco



  • Hallo,
    ich hätte da jetzt gerne noch eine kleine Änderung. Ist es möglich einen Splitter einzufügen, mit dem Benutzer die Größe der beiden Seiten selber festlegen kann. Wenn ja wie?

    --
    Danke und Gruß Marco



  • Jo, is auch nicht sonderlich schwierig, dabei hilft der jSplitPane (welch Überraschung ;)) Hier nen kleines Beispiel...

    /*...*/
    private javax.swing.JSplitPane SplitPane1 = new javax.swing.JSplitPane();
    private javax.swing.JPane PanelLinks = new javax.swing.JPanel();
    private javax.swing.JPane PanelRechts = new javax.swing.JPanel();
    
    /*...*/
    
    /* Binden der beiden Panels an den SplitPane */
    SplitPane1.setLeftComponent(PanelLinks);
    SplitPane1.setRightComponent(PanelRechts);
    
    /* und hinzufügen des SplitPanes in das Fenster */
    getContentPane().add(SplitPane1, java.awt.BorderLayout.CENTER);
    
    /*...*/
    


  • Nochmals Danke für deine Hilfe. Langsam wird teuer 😃


Anmelden zum Antworten