Potrzebuję zbudować GUI używając GroupLayout (nie innych układów). GUI będzie wyglądać następująco:Budowanie GUI za pomocą GroupLayout w Javie
----------------------------
| field 1 field 2 field 3 |
| FFIEEELLLDD4 FIELDDDDDD5 |
| FIEEEEEEEEEEEEEEELDDDD 6 |
_____________________________
Pola 1 - 3 wziąć 1, każda o długości, pola 4 i 5, każda o długości 1,5 się, a pole 6 wykonuje 3 długości. Te trzy grupy są wyrównane zarówno na początku, jak i na końcu.
Odnosiłem się do tego http://docs.oracle.com/javase/tutorial/uiswing/layout/group.html.
Dla uproszczenia użyję JLabels jako uchwytów dla pól.
Oto mój kod do tej pory i nie mam szczęścia, aby uzyskać GUI, którego potrzebowałem.
public class RecorderGUI extends JFrame {
private final JLabel one;
private final JLabel two;
private final JLabel three;
private final JLabel four;
private final JLabel five;
private final JLabel six;
public RecorderGUI() {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GroupLayout layout = new GroupLayout(panel);
panel.setLayout(layout);
one = new JLabel("one");
two = new JLabel("two");
three = new JLabel("three");
four = new JLabel("four");
five = new JLabel("five");
six = new JLabel("six");
layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup())
.addComponent(one)
.addComponent(two)
.addComponent(three)
.addGroup(layout.createSequentialGroup())
.addComponent(four)
.addComponent(five))
.addComponent(six));
layout.setVerticalGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(one)
.addComponent(two)
.addComponent(three))
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(four)
.addComponent(five))
.addComponent(six));
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
public static void main(final String[] args) {
RecorderGUI GUI = new RecorderGUI();
}
Kod jest w wyniku czynności, która nie jest to, co chciałem: jeden, dwa i trzy są połączone ze sobą; cztery i pięć pokrywają się również.
Niestety, chciałbym dodać zdjęcie GUI wyjściowej, ale nie mogę dołączyć zdjęcia bo mam poniżej 10 reputacji :(
jeden, dwa i trzy są połączone ze sobą;. cztery i pięć pokrywają również – newtothissite
i dlaczego ograniczenie do 'GroupLayout' – Howard