Ok, ich bin ziemlich neu in Java schwingt und versucht, die Tricks zu lernen, aber kämpft mit der Ausrichtung von 2 JPanels im Rahmen. Wenn Sie sich den folgenden Screenshot ansehen, stimmt der Spaltenname JPanel und die JPanel-Ausrichtung nicht richtig aufeinander ab.Wie werden 2 JPanels vertikal zueinander ausgerichtet?
Unten ist mein Code.
JPanel columns = new JPanel(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.weighty = 1.0;
gbc.weightx = 1.0;
gbc.fill = GridBagConstraints.VERTICAL;
gbc.insets = new Insets(5, 5, 5, 5);
gbc.anchor = GridBagConstraints.VERTICAL;
text = "<html><b>Action</b></html>";
JLabel label_action = new JLabel(text);
columns.add(label_action, gbc);
columns.setLayout(new GridBagLayout());
JPanel values= new JPanel(new GridBagLayout());
values.setBorder(BorderFactory.createRaisedBevelBorder());
gbc.weighty = 1.0;
gbc.weightx = 1.0;
gbc.fill = GridBagConstraints.VERTICAL;
gbc.insets = new Insets(5, 5, 5, 5);
gbc.anchor = GridBagConstraints.VERTICAL;
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<String>();
model.addElement("click");
model.addElement("Input Keys");
final JComboBox<String> comboBox1 = new JComboBox<String>(model);
AutoCompleteDecorator.decorate(comboBox1);
comboBox1.setPreferredSize(new Dimension(200, 22));
values.add(comboBox1, gbc);
values.setLayout(new GridBagLayout());
Entfernen Sie alle Anrufe an 'setLayout'. Sie haben jedes JPanel bereits mit einem Layout (speziell einem GridBagLayout) erstellt. Wenn Sie ein neues Layout festlegen, werden alle zuvor angegebenen Einschränkungen verworfen. – VGR
Das Entfernen von setLayout aus beiden JPanel führt zu einem Kompilierungsfehler. Ausnahme im Thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: ungültiger Ankerwert – Naseem
Sie müssen ein einzelnes JPanel mit Ihren Titeln in der Zeile Null des Rasters verwenden. – FredK