Ich habe 5 JPanels
vertikal aufgereiht. Jede JPanel
ist mit denselben Elementen, aber unterschiedlichen Werten gefüllt (JPanel
, JButton
, JLabel
). Ich möchte, dass sie wie folgt aussehen:GridBagLayout nicht anstehen
Panel Button Label
Panel Button Label
Buts es Ausdrehen wie diese
Panel Button Label
Panel Button Label
Der Abstand ein wenig aus, aber der Code ist genau das gleiche für jeden Behälter. Wie kann ich das beheben?
public class AnswerChoice extends JPanel {
private static final long serialVersionUID = 1L;
private AnswerButton button;
private JLabel answerLabel;
public AnswerChoice(String imageURL) {
setBackground(Color.RED);
setLayout(new GridBagLayout());
button = new AnswerButton(imageURL);
answerLabel = new JLabel();
answerLabel.setFont(new Font("Times New Roman", Font.PLAIN, 32));
GridBagConstraints gbc = new GridBagConstraints();
JPanel panel = new JPanel();
panel.setBackground(Color.ORANGE);
gbc.fill = GridBagConstraints.BOTH;
gbc.gridx = 1;
gbc.weightx = 0.2;
add(panel, gbc);
gbc.fill = GridBagConstraints.NONE;
gbc.gridx = 2;
gbc.weightx = 0.0;
gbc.insets = new Insets(0, 0, 0, 30);
add(button, gbc);
gbc.fill = GridBagConstraints.BOTH;
gbc.gridx = 3;
gbc.weightx = 0.8;
add(answerLabel, gbc);
}
}
Die JLabel
tut Text drin, aber ich stelle es woanders.
Wahrscheinlich möchten Sie 'gbc.anchor = GridBagConstraints.BASELINE_LEADING;'. Das Ankerfeld bestimmt die Platzierung einer Komponente in ihrer Zelle. – VGR
Es scheint, dass eine 3-Spalten-Tabelle besser für die Anzeige der Daten geeignet wäre. Unterschiedliche 'GridBagLayout'-Instanzen in verschiedenen Bereichen können nicht aneinander ausgerichtet werden! –
Kann ich einen proportionalen Abstand in einer Tabelle angeben? Ich habe das 'GridBagLayout' verwendet, so dass ich die 0.2- und 0.8-Gewichte – kneedhelp