Hi ich habe folgendes Problem:
Ich habe Eine Komponente Header. In der Soll ein Titel, eine Beschreibung und später optional ein Image angezeigt werden. Den Header habe ich in eine Komponente eingebunden (BorderLayout.NORTH) Wenn ich nun den Frame vergrößer, kann ich ihn nicht mehr verkleinern. Auch JSplitPane, die diese Komponenten enthalten, lassen sich nicht verschieben.
Ich habe bisher rausgefunden, das das Problem im Zusammenhang mit constraints.fill = GridBagConstraints.HORIZONTAL und constraints.weightx = 1.0 auftritt.
Den Konstruktor von Header seht ihr hier:
Das Layout soll so aus sehen, das oben der Titel horizontal den ganzen Platz ausfüllt, darunter befindet sich links das Image und daneben die Beschreibung. Die Beschreibung soll horizontal auch den restlichen Platz einnehmen.
Hat jemand eine Idee, wie das Problem gelöst werden kann?
Danke im voraus.
Ich habe Eine Komponente Header. In der Soll ein Titel, eine Beschreibung und später optional ein Image angezeigt werden. Den Header habe ich in eine Komponente eingebunden (BorderLayout.NORTH) Wenn ich nun den Frame vergrößer, kann ich ihn nicht mehr verkleinern. Auch JSplitPane, die diese Komponenten enthalten, lassen sich nicht verschieben.
Ich habe bisher rausgefunden, das das Problem im Zusammenhang mit constraints.fill = GridBagConstraints.HORIZONTAL und constraints.weightx = 1.0 auftritt.
Den Konstruktor von Header seht ihr hier:
Code:
// ...
public Header(final String title, final String description) {
super.setLayout(new GridBagLayout());
final JLabel titleL = new JLabel(title);
GridBagConstraints constraints = new GridBagConstraints();
constraints.anchor = GridBagConstraints.WEST;
constraints.gridx = 0;
constraints.gridy = 0;
constraints.gridwidth = 1;
constraints.weightx = 1.0;
constraints.insets = new Insets(5, 5, 5, 5);
super.add(titleL, constraints);
final JTextArea descriptionTA = new JTextArea(description);
descriptionTA.setBorder(null);
descriptionTA.setOpaque(false);
descriptionTA.setEditable(false);
descriptionTA.setLineWrap(true);
descriptionTA.setWrapStyleWord(true);
constraints = new GridBagConstraints();
constraints.anchor = GridBagConstraints.WEST;
constraints.gridy = 1;
constraints.gridx = 0;
constraints.gridwidth = 1;
constraints.fill = GridBagConstraints.HORIZONTAL;
constraints.insets = new Insets(5, 5, 5, 5);
super.add(descriptionTA, constraints);
}
// ...
Das Layout soll so aus sehen, das oben der Titel horizontal den ganzen Platz ausfüllt, darunter befindet sich links das Image und daneben die Beschreibung. Die Beschreibung soll horizontal auch den restlichen Platz einnehmen.
Hat jemand eine Idee, wie das Problem gelöst werden kann?
Danke im voraus.