tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
569
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Pasukaru
    Pasukaru Pasukaru ist offline Mitglied
    Registriert seit
    Apr 2010
    Ort
    Kaldadewui
    Beiträge
    16
    Howdy,

    Hab mal wieder ne Frage zu Layout-Managern. Und zwar: wie kann ich einstellen, dass bei der Vergrößerung/Verkleinerung des Panels/Frames/WasAuchImmer, die Components das Seitenverhältnis beibehalten?

    Hab mehrere quadratische Buttons - und ich will verhindern, dass diese rechteckig werden.
    Hat jemand ne Ahnung wie ich das anstellen kann?

    Danke schonmal für eure Antworten!

    MfG - Pasukaru
     

  2. #2
    AttilaF AttilaF ist offline Mitglied Bronze
    Registriert seit
    Dec 2010
    Beiträge
    26
    z.B. bei FlowLayout oder GridBagLayout (mit default GridBagConstraints.NONE) wird die Komponentgröße beibehalten.

    Gruß Attila
     

  3. #3
    Avatar von Pasukaru
    Pasukaru Pasukaru ist offline Mitglied
    Registriert seit
    Apr 2010
    Ort
    Kaldadewui
    Beiträge
    16
    Danke für die Antwort - aber das ist nicht mein eigentliches Ziel.

    Die Komponenten sollen schon vergrößert werden - jedoch soll das Seitenverhältnis gleich bleiben. Also wenn ich das Fenster vergrößere, wird aus einem quadratischen-Button u.U. ein rechteckiger - das will ich irgendwie vermeiden.

    Im Prinzip muss nach dem anpassen der Größe nur die längere Seite an die kürzere angepasst werden - Hab nur leider keine Ahnung, wie ich das bewerkstelligen kann.

    Ich hab auch schon mit einem componentListener versucht die bounds und die preferredSize zu verändern - allerdings ohne Erfolg.

    - EDIT -
    Habs hinbekommen!
    Ich hab das Layout auf null gesetzt, und die Größenänderung der Buttons über einen componentListener ausgeführt.
    Wen es interessiert - hier ein Code-Ausschnitt:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    JPanel panel = new Panel();
    panel.setLayout(null);      
    if( panel.getComponentListeners().length<1 ){   // Um das hinzufügen mehrerer Listener auf jeden Fall zu vermeiden
        panel.addComponentListener(new ComponentListener() {
            public void componentShown(ComponentEvent arg0) {}
            public void componentResized(ComponentEvent arg0) {
                        
                int w = 1234; // breite berechnen...
                int h = 4321; // länge berechnen...
                int min = Math.min(w, h);   //Kürzere Seite festellen - 
                                            //da es sich bei mir um Quadrate handelt
                                            //brauche ich kein genaues Seitenverhältnis
                button.setBounds(x, y, min, min);
                        
            }
            public void componentMoved(ComponentEvent arg0) {}
            public void componentHidden(ComponentEvent arg0) {}
        });
    }

    -- Zählt das nun schon als Custom-LayoutManager? Wenn ja, bin ich stolz auf meine erbrachte Leistung.
    Geändert von Pasukaru (15.01.11 um 14:10 Uhr) Grund: - EDIT -
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 13.03.09, 17:35
  2. LayoutManager und Abstand
    Von kloakenratte im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 07.05.08, 08:47
  3. LayoutManager Probleme
    Von squeeez im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 17.03.08, 19:05
  4. LayoutManager - TableLayout und TitledBorder
    Von Dwayne im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 17.12.07, 18:25
  5. Layoutmanager?
    Von the_skywalker im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 02.06.05, 10:04