Mein Ziel ist es, nur das Bild in die Mitte zu verschieben.
Aber wenn ich das Bild nach rechts oder links verschiebe, werden die from
Beschriftung und das Textfeld auch um den Betrag verschoben, den ich für das Bild angegeben habe.
Gibt es eine Möglichkeit zu verhindern, dass sich das Etikett und das Textfeld bewegen, während das Bild verschoben wird?
Hier ist, was ich bisher getan:GridBagLayout: So verschieben Sie bestimmte Komponenten
// Center
center = new JPanel();
center.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
Border innerC = BorderFactory.createTitledBorder("Travel details");
Border outsideC = BorderFactory.createEmptyBorder(5,5,5,5);
center.setBorder(BorderFactory.createCompoundBorder(outsideC,innerC));
fromLabel = new JLabel("From : ");
fromField = new JTextField("to",30);
fromLabel.setFont(font);
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 4.0;
gbc.weighty = 4.0;
gbc.insets = new Insets(5,4,5,5);
gbc.fill = GridBagConstraints.NONE;
gbc.anchor = GridBagConstraints.LINE_END;
center.add(fromLabel,gbc);
gbc.gridx = 1;
gbc.gridy = 0;
gbc.weightx = 1;
gbc.weighty = 1;
gbc.fill = GridBagConstraints.NONE;
gbc.anchor = GridBagConstraints.LINE_START;
gbc.gridwidth = 1;
center.add(fromField,gbc);
JButton trainImage = new JButton();
trainImage.setIcon(new ImageIcon("train.jpg"));
gbc.gridx = 1;
gbc.gridy = 20;
gbc.weightx = 10;
gbc.weighty = 20;
gbc.fill = GridBagConstraints.NONE;
gbc.anchor = GridBagConstraints.CENTER;
gbc.gridwidth = 3;
gbc.ipadx = 5;
center.add(trainImage,gbc);
this.add(center, BorderLayout.CENTER);
this.setVisible(true);
Main-Methode:
public static void main(String[] args) {
gui g = new gui();
}
Für bessere Hilfe, früher, ein [MCVE] oder [kurze, unabhängige, korrekte Beispiel] (http://www.sscce.org/). –