LayoutManager Anordnen der Elemente im GridBagLayout

Tobser

Mitglied
Halloo Leute,
ich hab hier ein kleines Problem mit meinem LayoutManager. Ich habe zwei JPanels im GridBagLayout. In beiden werden die Elemente auf die gleiche Weise angeordnet. Das erste Panel klappt wunderbar. Beim zweiten dehnen sich die TextFields Positionfeld und Betragfeld sowie der Button Sart bis an den linken Rand aus.
Hier mal mein Code:
Java:
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.ActionEvent;
import javax.swing.*;
import javax.swing.event.ListDataListener;
import javax.swing.event.ListDataEvent;
import java.awt.*;

public class FEM_Hauptfenster extends JFrame {

   private static final long serialVersionUID = 7373328358279206718L;
   private Toolkit t;
   private int x=0,y=0,width=0,height=0;
 
   //Kompnenten
   private JPanel Mastercontainer;
 
   //Untercontainer
   private JPanel Modellpanel;
   private JPanel Lastpanel;

   //Modellpanel
   private JLabel ModellLabel;
   private JLabel EModulLabel;
   private JTextField EModulfeld;
   private JLabel FlaechenmomentLabel;
   private JTextField Flaechenmomentfeld;
   private JLabel LaengeLabel;
   private JTextField Laengefeld;
   //Lastpanel
   private JLabel LastLabel;
   private JLabel PositionLabel;
   private JTextField Positionfeld;
   private JLabel BetragLabel;
   private JTextField Betragfeld;
   private JButton AddLast;
   private JButton StartBerechnung;

   public static void main(String[] args) {
       EventQueue.invokeLater(new Runnable() {
           public void run() {
               try {
                   FEM_Hauptfenster frame = new FEM_Hauptfenster();
                   frame.setVisible(true);
               } catch (Exception e) {
                   e.printStackTrace();
               }
           }
       });
   }


   public FEM_Hauptfenster() {
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
       //Ermittlung der Fenstergröße und Position für Vollbild
       t=Toolkit.getDefaultToolkit();
       Dimension d=t.getScreenSize();
       width=t.getScreenSize().width;
       height=t.getScreenSize().height;
       x=(int)((d.getWidth()-width)/2);
       y=(int)((d.getHeight()-height)/2);
       setBounds(x, y, width, height);
  
       this.initComponents();
  
       setVisible(true);
  
   }

   private void initComponents() {
       this.getContentPane().setLayout(new BorderLayout());
       //Anlegen aller Panels
       //Erzeugen des Containers für Panels und ComboBox im Hauptfenster
       this.Mastercontainer = new JPanel(new CardLayout());
 
       //Initialisieren der Untercontainer
       this.Modellpanel = new JPanel(new GridBagLayout());
       this.Lastpanel=new JPanel(new GridBagLayout());

       GridBagConstraints c=new GridBagConstraints();
 
       //Modellpanel
       //Initialisieren der Steuerelemente
       this.ModellLabel=new JLabel("Hier werden die einzelnen Modellparameter festgelegt");
       this.EModulLabel=new JLabel("EModul:");
       this.EModulfeld=new JTextField("EModul eingeben");
       this.FlaechenmomentLabel=new JLabel("Flächenmoment:");
       this.Flaechenmomentfeld=new JTextField("Flächenträgheitsmoment eingeben");
       this.LaengeLabel=new JLabel("Modelllänge:");
       this.Laengefeld=new JTextField("Modelllänge eingeben");
  
       //Hinzufügen der Steuerelemente
       //ModellLabel
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.CENTER;
       c.gridx=0;
       c.gridy=0;
       c.insets=new Insets(10,10,10,10);
       this.Modellpanel.add(this.ModellLabel,c);
  
       //EModulLabel
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_START;
       c.gridx=0;
       c.gridy=1;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Modellpanel.add(this.EModulLabel,c);
  
       //EModulfeld
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_END;
       c.gridx=1;
       c.gridy=1;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Modellpanel.add(this.EModulfeld,c);
  
       //FlaechenmomentLabel
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_START;
       c.gridx=0;
       c.gridy=2;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Modellpanel.add(this.FlaechenmomentLabel,c);
  
       //Flaechenmomentfeld
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_END;
       c.gridx=1;
       c.gridy=2;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Modellpanel.add(this.Flaechenmomentfeld,c);
  
       //LaengeLabel
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_START;
       c.gridx=0;
       c.gridy=3;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Modellpanel.add(this.LaengeLabel,c);
  
       //Laengefeld
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_END;
       c.gridx=1;
       c.gridy=3;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Modellpanel.add(this.Laengefeld,c);
  
  
       //Lastpanel
       //Initialisieren der Steuerelemente
       this.LastLabel=new JLabel("Hier sind die einzelnen Lasten mit ihren Position und ihren Beträgen zu definieren");
       this.PositionLabel=new JLabel("Position:");
       this.Positionfeld=new JTextField("Position eingeben");
       this.BetragLabel=new JLabel("Betrag:");
       this.Betragfeld=new JTextField("Betrag eingeben");
       this.AddLast=new JButton("Last erzeugen");
       this.StartBerechnung=new JButton("Starten der Berechnung");
  
  
       //Hinzufügen der Steuerelemente
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.CENTER;
       c.gridx=0;
       c.gridy=0;
       c.gridwidth=0;
       c.insets=new Insets(10,10,10,10);
       this.Lastpanel.add(this.LastLabel,c);
  
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_START;
       c.gridx=0;
       c.gridy=1;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Lastpanel.add(this.PositionLabel,c);
  
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_END;
       c.gridx=1;
       c.gridy=1;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Lastpanel.add(this.Positionfeld,c);
  
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_START;
       c.gridx=0;
       c.gridy=2;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Lastpanel.add(this.BetragLabel,c);
  
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_END;
       c.gridx=1;
       c.gridy=2;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Lastpanel.add(this.Betragfeld,c);
  
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.CENTER;
       c.gridx=0;
       c.gridy=3;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Lastpanel.add(this.AddLast,c);
  
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.CENTER;
       c.gridx=1;
       c.gridy=3;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Lastpanel.add(this.StartBerechnung,c);
  
       //Hinzufgen der Panels zum Mastercontainer
       this.Mastercontainer.add(this.Modellpanel,"Modellpanel");
       this.Mastercontainer.add(this.Lastpanel,"Lastpanel");

       this.getContentPane().add(this.NaviBox, BorderLayout.PAGE_START);
       this.getContentPane().add(Mastercontainer, BorderLayout.CENTER);
   }
}
Hab noch zwei Screenshoots von den beiden Panels gemacht.Lastpanel.png
Modellpanel.png
 
Zuletzt bearbeitet:

Viktim

Bekanntes Mitglied
So, ich hab dir das ganze mal ein bisschen aufgeräumt...
Java:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;

import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Test extends JPanel {

  private static final long serialVersionUID = 7373328358279206718L;
  private Toolkit toolkit;

  // Kompnenten

  // Untercontainer
  private JPanel modellPanel;
  private JPanel lastPanel;

  // Modellpanel
  private JLabel modellLabel;
  private JLabel eModulLabel;
  private JTextField eModulfeld;
  private JLabel flaechenmomentLabel;
  private JTextField flaechenmomentFeld;
  private JLabel laengeLabel;
  private JTextField laengefeld;
  // Lastpanel
  private JLabel lastLabel;
  private JLabel positionLabel;
  private JTextField positionFeld;
  private JLabel betragLabel;
  private JTextField betragFeld;
  private JButton addLast;
  private JButton startBerechnung;

  public Test() {

    // Ermittlung der Fenstergröße und Position für Vollbild
    toolkit = Toolkit.getDefaultToolkit();
    Dimension screenSize = toolkit.getScreenSize();
    setPreferredSize(screenSize);

    initComponents();
    fuegeLayoutHinzu();
    erstelleFenster();
  }

  private void fuegeLayoutHinzu() {
    modellPanel.setLayout(new GridBagLayout());
    lastPanel.setLayout(new GridBagLayout());

    GridBagConstraints c = new GridBagConstraints();
    c.insets = new Insets(10, 10, 10, 10);

    fuegeZuGridBagLayoutHinzu(modellPanel, modellLabel, c, 0, 0, 1, 1);
    fuegeZuGridBagLayoutHinzu(modellPanel, eModulLabel, c, 0, 1, 1, 1);
    fuegeZuGridBagLayoutHinzu(modellPanel, eModulfeld, c, 1, 1, 1, 1);
    fuegeZuGridBagLayoutHinzu(modellPanel, flaechenmomentLabel, c, 0, 2, 1, 1);
    fuegeZuGridBagLayoutHinzu(modellPanel, flaechenmomentFeld, c, 1, 2, 1, 1);
    fuegeZuGridBagLayoutHinzu(modellPanel, laengeLabel, c, 0, 3, 1, 1);
    fuegeZuGridBagLayoutHinzu(modellPanel, laengefeld, c, 1, 3, 1, 1);

    fuegeZuGridBagLayoutHinzu(lastPanel, lastLabel, c, 0, 0, 1, 1);
    fuegeZuGridBagLayoutHinzu(lastPanel, positionLabel, c, 0, 1, 1, 1);
    fuegeZuGridBagLayoutHinzu(lastPanel, positionFeld, c, 1, 1, 1, 1);
    fuegeZuGridBagLayoutHinzu(lastPanel, betragLabel, c, 0, 2, 1, 1);
    fuegeZuGridBagLayoutHinzu(lastPanel, betragFeld, c, 1, 2, 1, 1);
    fuegeZuGridBagLayoutHinzu(lastPanel, addLast, c, 0, 3, 1, 1);
    fuegeZuGridBagLayoutHinzu(lastPanel, startBerechnung, c, 1, 3, 1, 1);

    add(modellPanel, BorderLayout.CENTER);
    add(lastPanel, BorderLayout.SOUTH);

  }

  private void erstelleFenster() {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.add(this);
    frame.pack();
    frame.setVisible(true);
  }

  private void initComponents() {

    // Initialisieren der Untercontainer
    modellPanel = new JPanel(new GridBagLayout());
    lastPanel = new JPanel(new GridBagLayout());

    // Modellpanel
    // Initialisieren der Steuerelemente
    modellLabel = new JLabel("Hier werden die einzelnen Modellparameter festgelegt");
    eModulLabel = new JLabel("EModul:");
    eModulfeld = new JTextField("EModul eingeben");
    flaechenmomentLabel = new JLabel("Flächenmoment:");
    flaechenmomentFeld = new JTextField("Flächenträgheitsmoment eingeben");
    laengeLabel = new JLabel("Modelllänge:");
    laengefeld = new JTextField("Modelllänge eingeben");

    lastLabel = new JLabel("Hier sind die einzelnen Lasten mit ihren Position und ihren Beträgen zu definieren");
    positionLabel = new JLabel("Position:");
    positionFeld = new JTextField("Position eingeben");
    betragLabel = new JLabel("Betrag:");
    betragFeld = new JTextField("Betrag eingeben");
    addLast = new JButton("Last erzeugen");
    startBerechnung = new JButton("Starten der Berechnung");
  }

  public void fuegeZuGridBagLayoutHinzu(Container container, JComponent komponente,
    GridBagConstraints gbc, int xpos, int ypos, int breite, int hoehe) {
    gbc.fill = GridBagConstraints.HORIZONTAL;
    gbc.gridx = xpos;
    gbc.gridy = ypos;
    gbc.gridwidth = breite;
    gbc.gridheight = hoehe;
    gbc.weightx = 1;

    container.add(komponente, gbc);
  }

  public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
      public void run() {
        try {
          Test test = new Test();
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    });
  }
}

Wolltest du das so haben?
 

Tobser

Mitglied
Ich dachte, ich nehme alles, was das Problem nicht direkt betrifft raus. Ich kann auch nochmal den gesammten Code posten.
Java:
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.ActionEvent;
import javax.swing.*;
import javax.swing.event.ListDataListener;
import javax.swing.event.ListDataEvent;
import java.awt.*;

public class FEM_Hauptfenster extends JFrame {
 
   private static final long serialVersionUID = 7373328358279206718L;
   private Toolkit t;
   private int x=0,y=0,width=0,height=0;
   
   //Kompnenten
   private JPanel Mastercontainer;
   private JComboBox NaviBox;
   
   //Untercontainer
   private JPanel Startpanel;
   private JPanel Modellpanel;
   private JPanel Lastpanel;
   private JPanel Ergebnispanel;

   //Steuerelemente der einzelnen Panels
   //Startpanel
   private JLabel StartLabel;
   //Modellpanel
   private JLabel ModellLabel;
   private JLabel EModulLabel;
   private JTextField EModulfeld;
   private JLabel FlaechenmomentLabel;
   private JTextField Flaechenmomentfeld;
   private JLabel LaengeLabel;
   private JTextField Laengefeld;
   //Lastpanel
   private JLabel LastLabel;
   private JLabel PositionLabel;
   private JTextField Positionfeld;
   private JLabel BetragLabel;
   private JTextField Betragfeld;
   private JButton AddLast;
   private JButton StartBerechnung;
   //Ergebnispanel
   private JLabel ErgebnisLabel;
   private JTable Ergebnistabelle;

   public static void main(String[] args) {
       EventQueue.invokeLater(new Runnable() {
           public void run() {
               try {
                   FEM_Hauptfenster frame = new FEM_Hauptfenster();
                   frame.setVisible(true);
               } catch (Exception e) {
                   e.printStackTrace();
               }
           }
       });
   }


   public FEM_Hauptfenster() {
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
       //Ermittlung der Fenstergröße und Position für Vollbild
       t=Toolkit.getDefaultToolkit();
       Dimension d=t.getScreenSize();
       width=t.getScreenSize().width;
       height=t.getScreenSize().height;
       x=(int)((d.getWidth()-width)/2);
       y=(int)((d.getHeight()-height)/2);
       setBounds(x, y, width, height);
       
       this.initComponents();
       this.initListeners();
       
       setVisible(true);
       
   }

   private void initListeners() {
       this.NaviBox.addItemListener(new ItemListener(){
           public void itemStateChanged(ItemEvent e){
               if(e.getItem().equals("Start")){
                   Mastercontainer.remove(Modellpanel);
                   Mastercontainer.remove(Lastpanel);
                   Mastercontainer.remove(Ergebnispanel);
                   
                   Mastercontainer.add(Startpanel);
                   Mastercontainer.repaint();
                   validate();
               }
               if(e.getItem().equals("Modell")){
                   Mastercontainer.remove(Startpanel);
                   Mastercontainer.remove(Lastpanel);
                   Mastercontainer.remove(Ergebnispanel);
                   
                   Mastercontainer.add(Modellpanel);
                   Mastercontainer.repaint();
                   validate();
               }
               if(e.getItem().equals("Lasten")){
                   Mastercontainer.remove(Modellpanel);
                   Mastercontainer.remove(Startpanel);
                   Mastercontainer.remove(Ergebnispanel);
                   
                   Mastercontainer.add(Lastpanel);
                   Mastercontainer.repaint();
                   validate();
               }
               if(e.getItem().equals("Ergebnisse")){
                   Mastercontainer.remove(Modellpanel);
                   Mastercontainer.remove(Lastpanel);
                   Mastercontainer.remove(Startpanel);
                   
                   Mastercontainer.add(Ergebnispanel);
                   Mastercontainer.repaint();
                   validate();
               }
           }
       });
   }

   private void initComponents() {
       this.getContentPane().setLayout(new BorderLayout());
       //Anlegen aller Panels
       //Erzeugen des Containers für Panels und ComboBox im Hauptfenster
       this.Mastercontainer = new JPanel(new CardLayout());
       this.NaviBox=new JComboBox(new String []{"Start","Modell","Lasten","Ergebnisse"});
       this.NaviBox.setEditable(false);
    
       //Initialisieren der Untercontainer
       this.Startpanel = new JPanel();
       this.Modellpanel = new JPanel(new GridBagLayout());
       this.Lastpanel=new JPanel(new GridBagLayout());
       this.Ergebnispanel=new JPanel(new GridBagLayout());

       GridBagConstraints c=new GridBagConstraints();
     
       //Startpanel
       //Initialisieren der Steuerelemente
       this.StartLabel=new JLabel("Dieses Programm berechnet einen Biegebalken unter Eizellast mit Hilfe der FEM");
       //Hinzufügen zum Panel
       this.Startpanel.add(this.StartLabel);
  
       //Modellpanel
       //Initialisieren der Steuerelemente
       this.ModellLabel=new JLabel("Hier werden die einzelnen Modellparameter festgelegt");
       this.EModulLabel=new JLabel("EModul:");
       this.EModulfeld=new JTextField("EModul eingeben");
       this.FlaechenmomentLabel=new JLabel("Flächenmoment:");
       this.Flaechenmomentfeld=new JTextField("Flächenträgheitsmoment eingeben");
       this.LaengeLabel=new JLabel("Modelllänge:");
       this.Laengefeld=new JTextField("Modelllänge eingeben");
       
       //Hinzufügen der Steuerelemente
       //ModellLabel
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.CENTER;
       c.gridx=0;
       c.gridy=0;
       c.insets=new Insets(10,10,10,10);
       this.Modellpanel.add(this.ModellLabel,c);
       
       //EModulLabel
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_START;
       c.gridx=0;
       c.gridy=1;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Modellpanel.add(this.EModulLabel,c);
       
       //EModulfeld
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_END;
       c.gridx=1;
       c.gridy=1;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Modellpanel.add(this.EModulfeld,c);
       
       //FlaechenmomentLabel
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_START;
       c.gridx=0;
       c.gridy=2;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Modellpanel.add(this.FlaechenmomentLabel,c);
       
       //Flaechenmomentfeld
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_END;
       c.gridx=1;
       c.gridy=2;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Modellpanel.add(this.Flaechenmomentfeld,c);
       
       //LaengeLabel
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_START;
       c.gridx=0;
       c.gridy=3;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Modellpanel.add(this.LaengeLabel,c);
       
       //Laengefeld
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_END;
       c.gridx=1;
       c.gridy=3;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Modellpanel.add(this.Laengefeld,c);
    
       //Lastpanel
       //Initialisieren der Steuerelemente
       this.LastLabel=new JLabel("Hier sind die einzelnen Lasten mit ihren Position und ihren Beträgen zu definieren");
       this.PositionLabel=new JLabel("Position:");
       this.Positionfeld=new JTextField("Position eingeben");
       this.BetragLabel=new JLabel("Betrag:");
       this.Betragfeld=new JTextField("Betrag eingeben");
       this.AddLast=new JButton("Last erzeugen");
       this.StartBerechnung=new JButton("Starten der Berechnung");

       //Hinzufügen der Steuerelemente
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.CENTER;
       c.gridx=0;
       c.gridy=0;
       c.gridwidth=0;
       c.insets=new Insets(10,10,10,10);
       this.Lastpanel.add(this.LastLabel,c);
       
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_START;
       c.gridx=0;
       c.gridy=1;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Lastpanel.add(this.PositionLabel,c);
       
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_END;
       c.gridx=1;
       c.gridy=1;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Lastpanel.add(this.Positionfeld,c);
       
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_START;
       c.gridx=0;
       c.gridy=2;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Lastpanel.add(this.BetragLabel,c);
       
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_END;
       c.gridx=1;
       c.gridy=2;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Lastpanel.add(this.Betragfeld,c);
       
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.CENTER;
       c.gridx=0;
       c.gridy=3;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Lastpanel.add(this.AddLast,c);
       
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.CENTER;
       c.gridx=1;
       c.gridy=3;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Lastpanel.add(this.StartBerechnung,c);
 
       //Ergebnispanel
       //Initialisieren der Steuerelemente
       this.ErgebnisLabel=new JLabel("Hier werden die Ergebnisse der Berechnung ausgegeben*");
       //Hinzufügen der Steuerelemente
       this.Ergebnispanel.add(this.ErgebnisLabel);

       //Hinzufgen der Panels zum Mastercontainer
       this.Mastercontainer.add(this.Startpanel,"Startpanel");
       this.Mastercontainer.add(this.Modellpanel,"Modellpanel");
       this.Mastercontainer.add(this.Lastpanel,"Lastpanel");
       this.Mastercontainer.add(this.Ergebnispanel,"Ergebnispanel");

       this.getContentPane().add(this.NaviBox, BorderLayout.PAGE_START);
       this.getContentPane().add(Mastercontainer, BorderLayout.CENTER);
   }
}
 

Tobser

Mitglied
Es soll so aussehen, wie im Modellpanel. Links die beiden Labels linksbündig untereinander und rechts die Textfields rechtbündig untereinander und darunter noch zwei Buttons nebeneinander. Ganz oben ist dann noch ein Label, wie in dem ScreenShoot zu sehen ist.
 

Tobser

Mitglied
Also ich hab jetzt das Problem umgangen. Ich habe das Lastpanel mit einem BorderLayout versehen, oben das LastLabel hingepackt, in der Mitte hab ich jetzt ein Extrapanel, wo die Labels, TextFields und Buttons drin sind. Dies hab ich mit dem GridLayout versehen. Das klappt prima.
 

Viktim

Bekanntes Mitglied
Okay, schön, du solltest aber deinen Code trotzdem mal Aufräumen...
Du musst es ja nicht so machen wie ich, aber besser geht der auf jeden Fall ;)
 

Joose

Top Contributor
Wie sieht ein aufgeräumter Code aus? Was muss ich beachten?
Es gibt unter anderem Code Conventions an die man sich halten sollte (man muss nicht, aber andere können so den Code leichter lesen und schneller verstehen). Es gibt normale Java Code Conventions (einfach mal googeln) und manche Firmen haben dann noch eigene.

Doppelter Code wird dabei so gut es geht vermieden.
Beispiel:
Java:
               if(e.getItem().equals("Start")){
                   Mastercontainer.remove(Modellpanel);
                   Mastercontainer.remove(Lastpanel);
                   Mastercontainer.remove(Ergebnispanel);
                   
                   Mastercontainer.add(Startpanel);
                   Mastercontainer.repaint();
                   validate();
               }
               if(e.getItem().equals("Modell")){
                   Mastercontainer.remove(Startpanel);
                   Mastercontainer.remove(Lastpanel);
                   Mastercontainer.remove(Ergebnispanel);
                   
                   Mastercontainer.add(Modellpanel);
                   Mastercontainer.repaint();
                   validate();
               }
               if(e.getItem().equals("Lasten")){
                   Mastercontainer.remove(Modellpanel);
                   Mastercontainer.remove(Startpanel);
                   Mastercontainer.remove(Ergebnispanel);
                   
                   Mastercontainer.add(Lastpanel);
                   Mastercontainer.repaint();
                   validate();
               }
               if(e.getItem().equals("Ergebnisse")){
                   Mastercontainer.remove(Modellpanel);
                   Mastercontainer.remove(Lastpanel);
                   Mastercontainer.remove(Startpanel);
                   
                   Mastercontainer.add(Ergebnispanel);
                   Mastercontainer.repaint();
                   validate();
               }
Hier hast du 4x nahezu identische if-Bedingungen. Eine Überlegung wäre es, sowas in eine Methode auszulagern.

Gleiches gilt für sowas:
Java:
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.CENTER;
       c.gridx=0;
       c.gridy=0;
       c.insets=new Insets(10,10,10,10);
       this.Modellpanel.add(this.ModellLabel,c);
       
       //EModulLabel
       c.fill=GridBagConstraints.HORIZONTAL;
       c.anchor=GridBagConstraints.PAGE_START;
       c.gridx=0;
       c.gridy=1;
       c.gridwidth=3;
       c.insets=new Insets(10,10,10,10);
       this.Modellpanel.add(this.EModulLabel,c);
Hierzu schau dir doch den geposteten Code von Viktim an.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Elemente statisch anordnen AWT, Swing, JavaFX & SWT 4
G LayoutManager Panels anordnen über Schleifenvariablen AWT, Swing, JavaFX & SWT 7
DaCrazyJavaExpert Swing Komponenten genauer anordnen. AWT, Swing, JavaFX & SWT 13
B JTabbedPane Tabs anordnen AWT, Swing, JavaFX & SWT 2
L Eigene Component anordnen AWT, Swing, JavaFX & SWT 7
M JavaFX Panes wie "children" anordnen AWT, Swing, JavaFX & SWT 10
S JLabel anordnen AWT, Swing, JavaFX & SWT 2
V Fenster in einem Fenster anordnen AWT, Swing, JavaFX & SWT 7
D Wie kann ich Buttons und Labels besser anordnen AWT, Swing, JavaFX & SWT 4
W JRadioButton sauber untereinander anordnen AWT, Swing, JavaFX & SWT 3
D AWT Knoten für Graphen kreisförmig anordnen AWT, Swing, JavaFX & SWT 5
W LayoutManager GridBag richtig nutzen - Komponenten richtig anordnen und automatisch vergrößern AWT, Swing, JavaFX & SWT 5
D Mit GridBayLayout Komponenten anordnen AWT, Swing, JavaFX & SWT 6
H LayoutManager Auf gleicher Höhe anordnen AWT, Swing, JavaFX & SWT 4
H Bilder in Array zufällig anordnen AWT, Swing, JavaFX & SWT 4
Ollek JDialog Koponenten neu anordnen AWT, Swing, JavaFX & SWT 3
L JPanel Formen paralell anordnen AWT, Swing, JavaFX & SWT 9
S Anordnen von Buttons im BorderLayout AWT, Swing, JavaFX & SWT 6
A Gridlayout Vertikal anordnen AWT, Swing, JavaFX & SWT 6
J SWT 4 Objekte auf einem Composite anordnen AWT, Swing, JavaFX & SWT 5
P Buttons anordnen AWT, Swing, JavaFX & SWT 8
W Panels vertikal anordnen AWT, Swing, JavaFX & SWT 10
chik Button beschriften und Farbe zufällig anordnen AWT, Swing, JavaFX & SWT 2
K Zwei Panels zentriert anordnen AWT, Swing, JavaFX & SWT 3
M Fenster Windows-Like anordnen AWT, Swing, JavaFX & SWT 2
0 Bilder auf einem Grid anordnen? AWT, Swing, JavaFX & SWT 9
GilbertGrape Wie Panel anordnen? Welches Layout? AWT, Swing, JavaFX & SWT 7
T Komponenten im JPanel linksbündig anordnen? AWT, Swing, JavaFX & SWT 5
W Zeilenweises Anordnen von Komponenten AWT, Swing, JavaFX & SWT 3
T Frage zum Komponenten anordnen AWT, Swing, JavaFX & SWT 4
K Icon und Text auf JButton anordnen AWT, Swing, JavaFX & SWT 2
G Inhalt von JTable mittig anordnen AWT, Swing, JavaFX & SWT 6
G Sinnvoll Swingkomponenten anordnen AWT, Swing, JavaFX & SWT 3
P GridbagLayout: Komponenten anordnen mit Freiraum AWT, Swing, JavaFX & SWT 6
S JPanel anordnen AWT, Swing, JavaFX & SWT 18
E jtree, icon oben anordnen AWT, Swing, JavaFX & SWT 2
W JSpinner: Button vertikal anordnen AWT, Swing, JavaFX & SWT 2
H Komponenten übereinander anordnen, I/O-Konsole AWT, Swing, JavaFX & SWT 3
S Komponenten übereinander anordnen? AWT, Swing, JavaFX & SWT 5
H TextFields anordnen AWT, Swing, JavaFX & SWT 8
T Swing: frei Objekte anordnen AWT, Swing, JavaFX & SWT 9
_user_q ChoiceBox Elemente: Sprache ändern AWT, Swing, JavaFX & SWT 7
T Elemente auf vorheriger Stage, nach Wechsel der Stage ansprechen AWT, Swing, JavaFX & SWT 32
Lunar Swing JFrame erstellt; weitere Elemente werden nicht eingefügt/sind nicht zu sehen AWT, Swing, JavaFX & SWT 4
J JavaFX JavaFX Splitpane - Zugriff auf die Controller der Elemente AWT, Swing, JavaFX & SWT 8
G Swing Variable Elemente für GroupLayout AWT, Swing, JavaFX & SWT 18
F JFrame zeigt nicht alle Elemente auf anhieb an AWT, Swing, JavaFX & SWT 4
J JavaFX Elemente werden nicht zu TableView hinzugefügt AWT, Swing, JavaFX & SWT 3
J JavaFX JavaFX Elemente an Fenstergröße skalieren AWT, Swing, JavaFX & SWT 5
M Schnittpunkte zwischen zwei Graphics2D Elemente ermitteln. AWT, Swing, JavaFX & SWT 5
T AWT Grafik"Array" einzelne Elemente verschieben AWT, Swing, JavaFX & SWT 1
sandaime Swing 3 JComboBoxen ausgelesen Elemente einzel ausgeben AWT, Swing, JavaFX & SWT 6
M JavaFX GUI-Elemente erstellen, nachdem die GUI geladen hat AWT, Swing, JavaFX & SWT 4
TheJavaKid JavaFX Elemente positionieren AWT, Swing, JavaFX & SWT 2
B Swing Auf JList-Elemente aus einer anderen Klasse zugreifen AWT, Swing, JavaFX & SWT 1
N JavaFX GUI Elemente einer anderen (FXML)Klasse ansprechen AWT, Swing, JavaFX & SWT 16
D JavaFX Elemente aus VBox unterscheiden AWT, Swing, JavaFX & SWT 1
K Kann nicht auf GUI Elemente zugreifen, mit einer Methode im Controller klappts, mit der anderen nich AWT, Swing, JavaFX & SWT 10
R Swing Elemente verschieben sich im GBL beim Ein/Ausblenden AWT, Swing, JavaFX & SWT 0
Z Swing Swing: Elemente werden doppel/verschoben gezeichnet, sind teils unsichtbar etc... AWT, Swing, JavaFX & SWT 10
wolfgang63 JavaFX Elemente einer Group entfernen AWT, Swing, JavaFX & SWT 1
D SWT SWT Elemente aus anderen Klassen aufrufen - Invalid thread access AWT, Swing, JavaFX & SWT 6
O Ähnliche GUI Elemente - vererbung?! AWT, Swing, JavaFX & SWT 0
M AWT Gui anzeige Probes - Elemente erscheinen nicht regelmäßig AWT, Swing, JavaFX & SWT 2
M Swing JTabbedPane: Tab-Elemente anpassen AWT, Swing, JavaFX & SWT 3
T Swing Elemente der JList überlappend darstellen AWT, Swing, JavaFX & SWT 5
K GUI Elemente über eine separate Textdatei beschriften? AWT, Swing, JavaFX & SWT 4
T Alle Swing-Elemente anzeigen AWT, Swing, JavaFX & SWT 9
M Swing Elemente im Dialog neu "laden". AWT, Swing, JavaFX & SWT 6
T JTree - Elemente mit Doppelklick auswählen AWT, Swing, JavaFX & SWT 6
L Swing ActionListener zugriff auf bestimmte Elemente AWT, Swing, JavaFX & SWT 3
S Elemente im Panel in richtige Ausgangsstellung bringen AWT, Swing, JavaFX & SWT 10
K LayoutManager Wieso verschwinden Elemente? AWT, Swing, JavaFX & SWT 20
M JFrame + JNA/aero modul - GUI Elemente so möglich? AWT, Swing, JavaFX & SWT 28
P Elemente einer JList ausgeben AWT, Swing, JavaFX & SWT 11
B JList zeigt Elemente nicht an AWT, Swing, JavaFX & SWT 3
R Größe/Anordnung der Gui-Elemente automatisch? AWT, Swing, JavaFX & SWT 6
S JVM von Oracle/Sun soll für AWT/SWING Elemente die die Optimierungen der NVidia Treiber verwenden AWT, Swing, JavaFX & SWT 3
C Swing JFrame nimmt keine anderen Elemente auf AWT, Swing, JavaFX & SWT 13
R JApplet, Elemente unsichtbar AWT, Swing, JavaFX & SWT 2
1 JList - Elemente mit rechter Maustaste wählen AWT, Swing, JavaFX & SWT 6
L ID für GUI Elemente generieren AWT, Swing, JavaFX & SWT 11
C SWT-Elemente an View-Fenster angleichen und automatisch resizen AWT, Swing, JavaFX & SWT 3
U Elemente im Panel zentrieren mit GridLayout AWT, Swing, JavaFX & SWT 3
P Elemente im Kreis aufstellen AWT, Swing, JavaFX & SWT 5
G Swing Elemente aus Arraylist auf JFrame anzeigen AWT, Swing, JavaFX & SWT 9
G GUI Elemente aus NetBeans verwenden AWT, Swing, JavaFX & SWT 8
L SWT tree elemente markieren AWT, Swing, JavaFX & SWT 4
C Swing Elemente in JList sortieren AWT, Swing, JavaFX & SWT 2
T Elemente zu JList dynamisch hinzufügen AWT, Swing, JavaFX & SWT 4
S JTree Elemente nach BaumLevel abspeichern AWT, Swing, JavaFX & SWT 2
S JTree & JComboBox - Elemente übers Fenster hinaus anzeigen AWT, Swing, JavaFX & SWT 9
F JScrollPane überlagert andere Elemente AWT, Swing, JavaFX & SWT 5
S Swing UI-Elemente ordnen sich ungewollt in einer Reihe (ohne Layout) AWT, Swing, JavaFX & SWT 5
K Swing Elemente auf Zeichenfeld verschieben AWT, Swing, JavaFX & SWT 8
S Mit eigener Klasse auf GUI-Elemente zugreifen AWT, Swing, JavaFX & SWT 3
E Swing JComboBox als CellEditor in JTable zeigt Elemente nicht sofort an AWT, Swing, JavaFX & SWT 5
R In JFrame oder in Canvas mit grafischen Elemente zeichnen AWT, Swing, JavaFX & SWT 2
E Swing JList zur Laufzeit hinzugefügt elemente nicht sichtbar?! AWT, Swing, JavaFX & SWT 2
S Swing Elemente einer JList Farbig hinterlegen AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben