[Java] [GUI] GridBagLayout - klappt net so richtig

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von AfG-RnB, 28. Dezember 2009 .

Schlagworte:
  1. 28. Dezember 2009
    [GUI] GridBagLayout - klappt net so richtig

    Hallo Leute ich habe ein Problem mit dem GridBagLayout.
    Ich habe einen Container als Border Layout.
    Im Norden habe ich ein Panel eingefügt, dass ich als GridBagLayout verwenden möchte.

    So sieht erstmal der Kopf aus:
    Code:
    public abstract class Layout extends JFrame{
     
     protected Container c = getContentPane(); //Referenz auf den Container bestimmen
     
     protected JPanel pnlText = new JPanel();
     
     
     protected lblColor lblAirline = new lblColor("Individual Airline", Color.red, null, "tip"); //externe Klasse
     
     protected GridBagLayout gbl = new GridBagLayout();
     protected GridBagConstraints gbc = new GridBagConstraints(); //Objekt erstellen
     
     public JLabel lblTitle = new JLabel();
    Dann habe ich eine Methode die extern einen Text übergibt.
    Wenn ich in dieser Methode die Eigenschaften des GridBagLayouts anwende und später dann in meiner
    Layout() Klasse nochmal - ergeben sich verschiebungen.
    Gibt es eine möglichkeit, dass ich in meiner Layout Klasse siehe unten die Variable lblTitle benutze ??
    oder kann ich die Variable nur in dieser Methode benutzen??
    Code:
    public void setTitleText(String TitleText) { 
     lblTitle = new lblColor(TitleText, Color.white, null, "Tip");
     lblTitle.setFont(new Font("SansSerif", Font.PLAIN,18)); 
     }
    
    Hier weiter unten:
    Mein Label Title wird garnicht angezeigt weil nicht auf die Methode zugegriffen werden kann. Der zweite Label wird angezeigt.
    Wenn ich jetzt alles bis zum zweiten Teil in meine Methode packe, dann verhält sich das Layout komisch. Alles verschiebt sich.....
    Code:
    public Layout() {
     /*
     * Einstellen der Constraints und 
     * Hinzufügen der Objekte
     */
     
     //Label Title: 
     
     gbc.gridwidth = GridBagConstraints.REMAINDER;
     gbc.gridheight = 1;
     gbc.weightx = 1;
     gbc.weighty = 1;
     gbc.anchor = GridBagConstraints.LINE_START;
     //Konstruktor Insets: oben, links, unten, rechts
     gbc.insets = new Insets(0,0,10,0);
     gbl.setConstraints(lblTitle, gbc);
     pnlText.add(lblTitle);
     
     c.setLayout(new BorderLayout());
     pnlText.setLayout(gbl);
     c.add(pnlText, BorderLayout.NORTH);
     
     //Zweites Label (funktioniert)
     gbc.gridwidth = 1;
     gbc.anchor = GridBagConstraints.LINE_END;
     gbc.insets = new Insets(00,100,0,0);
     JLabel label = new JLabel("Fahrzeugtyp:");
     gbl.setConstraints(label, gbc);
     pnlText.add(label);
     
     
     
     }
     
    }
    
    Wäre euch für Hilfe sehr dankbar
     
  2. 28. Dezember 2009
    AW: [GUI] GridBagLayout - klappt net so richtig

    Hey,

    sowas ist zwar immer ne schlechte Antwort, wenn nach einer Lösung für etwas anderes gefragt wird, aber vielleicht hilft es dir trotzdem weiter, wenn du dir einmal das SpringLayout ansiehst. Das ist ähnlich umfangreich wie das GridBagLayout, jedoch leichter zu verstehen und zu bedienen.
     
  3. 28. Dezember 2009
    AW: [GUI] GridBagLayout - klappt net so richtig

    Falls du noch was einfacheres suchst kann ich dir auch noch das MigLayout empfehlen

    Is mit Abstand eines der Komfortablesten, und vor allem kann man damit Dinge anstellen, die sind mit den herkömmlichen einfach nicht möglich
    http://www.miglayout.com/
     
  4. 28. Dezember 2009
    AW: [GUI] GridBagLayout - klappt net so richtig

    Hi danke euch.
    Also ich tue mehrere Layouts kombinieren.
    die oberste Ebene soll aus 2 Labels bestehen. Eins linksbündig und eins rechtsbündig.

    Mit GridLayout geht das leider nicht, also die Textausrichtung klappt net.


    Werden diese Layouts mit der Standardversion mitgeliefert??
     
  5. 29. Dezember 2009
    AW: [GUI] GridBagLayout - klappt net so richtig

    Das SpringLayout ist auf jeden Fall in der Standard-API dabei. Das MigLayout musst du als externes Package einbinden, da es nicht teil der Standard-API ist. Allerdings wird versucht, es in die neue Java 7 Version zu integrieren. Mal sehen, was da kommt.
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.