Hallo,
ich hatte vor kurzem ein Problem mit GroupLayout() im Topic (JAVA-FORUM) GroupLayout() - wie funktioniert's?, habs mittlerweile auch so halbwegs verstanden wie das Ganze funktioniert aber Häng nun doch wieder fest mit folgendem Code:
Das Produziert eine GUI wie im Anhang test-1.png.
Wenn ich den Code von layout.setVerticalGroup(layout.createSequentialGroup() auf:
änder dann liegt der Button zumindest schonmal Vertikal-parallel zu dem Rest vom Formular (siehe test-2.png im Anhang).
Allerdings will ich auch das er die Höhe von beiden JTextFields zusammen (mit der Gap dazwischen) hat, also wie im ziel.png (Anhang).
Irgendwelche Ideen wie ich das umsetzen kann? Und ja, ich will es mit GroupLayout() machen und nicht mit BorderLayout() und anderen ;-)
MfG
ich hatte vor kurzem ein Problem mit GroupLayout() im Topic (JAVA-FORUM) GroupLayout() - wie funktioniert's?, habs mittlerweile auch so halbwegs verstanden wie das Ganze funktioniert aber Häng nun doch wieder fest mit folgendem Code:
Java:
import java.awt.Dimension;
import java.awt.EventQueue;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.WindowConstants;
@SuppressWarnings("serial")
public class Test extends JFrame {
public Test() {
createMainGUI();
setMinimumSize(new Dimension(340, 300));
setPreferredSize(new Dimension(740, 480));
setTitle("Test GUI");
pack();
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
}
private void createMainGUI() {
GroupLayout layout = new GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);
JLabel artistLabel = new JLabel("Artist:"), titleLabel = new JLabel("Title:");
JTextField artistTextField = new JTextField(), titleTextField = new JTextField();
JButton swapButton = new JButton("Swap");
layout.setHorizontalGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(Alignment.LEADING)
.addComponent(artistLabel)
.addComponent(titleLabel)
)
.addGroup(layout.createParallelGroup(Alignment.LEADING)
.addComponent(artistTextField)
.addComponent(titleTextField)
)
.addComponent(swapButton)
);
layout.setVerticalGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(Alignment.BASELINE)
.addComponent(artistLabel)
.addComponent(artistTextField)
)
.addGroup(layout.createParallelGroup(Alignment.BASELINE)
.addComponent(titleLabel)
.addComponent(titleTextField)
)
.addComponent(swapButton)
);
}
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
} catch (Exception ex) {
ex.printStackTrace();
}
new Test().setVisible(true);
}
});
}
}
Wenn ich den Code von layout.setVerticalGroup(layout.createSequentialGroup() auf:
Java:
layout.setVerticalGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(Alignment.BASELINE)
.addComponent(artistLabel)
.addComponent(artistTextField)
.addComponent(swapButton)
)
.addGroup(layout.createParallelGroup(Alignment.BASELINE)
.addComponent(titleLabel)
.addComponent(titleTextField)
.addComponent(swapButton)
)
);
Allerdings will ich auch das er die Höhe von beiden JTextFields zusammen (mit der Gap dazwischen) hat, also wie im ziel.png (Anhang).
Irgendwelche Ideen wie ich das umsetzen kann? Und ja, ich will es mit GroupLayout() machen und nicht mit BorderLayout() und anderen ;-)
MfG
Zuletzt bearbeitet: