Hallo zusammen.
Ich probiere soeben das erste mal mit dem GridBagLayout zu arbeiten und habe hier in Verbindung mit einem Borderlayout einige Probleme.
Und zwar erstelle ich ein Formular in einem GridBagLayout. Dieses wird in einer JScrollPane einem BorderLayout in den Center gelegt.
Wenn ich nun jedoch mein Fenster in der Größe verändere, werden die einzelnen Zeilen des GridBagLayouts in der Höhe angepasst, so dass ein großer Freiraum in der Höhe zwischen den Komponenten entsteht.
Mein Wunsch wäre dass die kleinstmögliche Zeilenhöhe fix ist, und der restliche Platz nach unten hin einfach leer bleibt.
Eigentlich glaube ich dass die Lösung ja nicht allzu schwer sein kann, ich steh nur leider auf dem Schlauch.
Hier der zusammengefasste, aber hoffentlich alles relevante beinhaltende Code meiner Klasse.
Danke euch!
Ich probiere soeben das erste mal mit dem GridBagLayout zu arbeiten und habe hier in Verbindung mit einem Borderlayout einige Probleme.
Und zwar erstelle ich ein Formular in einem GridBagLayout. Dieses wird in einer JScrollPane einem BorderLayout in den Center gelegt.
Wenn ich nun jedoch mein Fenster in der Größe verändere, werden die einzelnen Zeilen des GridBagLayouts in der Höhe angepasst, so dass ein großer Freiraum in der Höhe zwischen den Komponenten entsteht.
Mein Wunsch wäre dass die kleinstmögliche Zeilenhöhe fix ist, und der restliche Platz nach unten hin einfach leer bleibt.
Eigentlich glaube ich dass die Lösung ja nicht allzu schwer sein kann, ich steh nur leider auf dem Schlauch.
Hier der zusammengefasste, aber hoffentlich alles relevante beinhaltende Code meiner Klasse.
Danke euch!
Java:
public class EmployeePanel extends JPanel {
// Main Panel
JPanel detailPanel = new JPanel();
JPanel detailSet = new JPanel();
// DetailLBL
JScrollPane scrollRight = new JScrollPane(detailSet, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
JLabel lblDetFirstName = new JLabel("Vorname:");
JTextField txtDetFirstName = new JTextField();
JLabel lblDetName = new JLabel("Name:");
JTextField txtDetName = new JTextField();
JLabel lblDetDepartment = new JLabel("Abteilung:");
JTextField txtDetDepartment = new JTextField();
JLabel lblDetBirthDate = new JLabel("Geburtsdatum:");
JXDatePicker birthDate = new JXDatePicker();
JLabel lblDetStrasse = new JLabel("Straße / Nr.:");
JTextField txtDetStrasse = new JTextField();
JLabel lblDetPLZ = new JLabel("Postleitzahl:");
JTextField txtDetPLZ = new JTextField();
JLabel lblDetOrt = new JLabel("Ort:");
JTextField txtDetOrt = new JTextField();
public EmployeePanel() {
this.setLayout(new BorderLayout());
detailPanel.setBorder(BorderFactory.createTitledBorder("Detailansicht"));
detailPanel.setLayout(new BorderLayout());
detailPanel.setPreferredSize(new Dimension(300, 100));
this.add(detailPanel, BorderLayout.EAST);
//Form
Container c = detailSet;
GridBagLayout gbl = new GridBagLayout();
c.setLayout( gbl );
// x y w h wx wy
addComponent( c, gbl, lblDetFirstName, 0, 0, 1, 1, 0.0, 0.0 );
addComponent( c, gbl, txtDetFirstName, 1, 0, 2, 1, 1.0, 0.0 );
addComponent( c, gbl, lblDetName, 0, 1, 1, 1, 0.0, 0.0 );
addComponent( c, gbl, txtDetName, 1, 1, 2, 1, 1.0, 0.0 );
addComponent( c, gbl, lblDetDepartment, 0, 2, 1, 1, 0.0, 0.0 );
addComponent( c, gbl, txtDetDepartment, 1, 2, 2, 1, 1.0, 0.0 );
addComponent( c, gbl, lblDetBirthDate, 0, 3, 1, 1, 0.0, 0.0 );
addComponent( c, gbl, birthDate, 1, 3, 2, 1, 1.0, 0.0 );
addComponent( c, gbl, lblDetStrasse, 0, 4, 1, 1, 0.0, 0.0 );
addComponent( c, gbl, txtDetStrasse, 1, 4, 2, 1, 1.0, 0.0 );
addComponent( c, gbl, lblDetPLZ, 0, 5, 1, 1, 0.0, 0.0 );
addComponent( c, gbl, txtDetPLZ, 1, 5, 2, 1, 1.0, 0.0 );
addComponent( c, gbl, lblDetOrt, 0, 6, 1, 1, 0.0, 0.0 );
addComponent( c, gbl, txtDetOrt, 1, 6, 2, 1, 1.0, 0.0 );
scrollRight.setBorder(BorderFactory.createEmptyBorder());
detailPanel.add(scrollRight, BorderLayout.CENTER);
}
static void addComponent(Container cont, GridBagLayout gbl, Component c,
int x, int y, int width, int height, double weightx, double weighty) {
GridBagConstraints gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.NORTH;
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.gridx = x;
gbc.gridy = y;
gbc.gridwidth = width;
gbc.gridheight = height;
gbc.weightx = weightx;
gbc.weighty = 1.0;
gbc.insets = new Insets(0, 0, 0, 10);
gbl.setConstraints(c, gbc);
cont.add(c);
}