Mam JPanel
, który używa BoxLayout
w kierunku X_AXIS
. Problem, który mam najlepiej obrazuje najlepiej: alt text http://www.freeimagehosting.net/uploads/fbffd71119.pngDokonywanie BoxLayout przenieść komponenty na górę podczas układania od lewej do prawej
Jak widać JPanel
po lewej stronie został wyśrodkowany zamiast wyrównany u góry. Chciałbym, aby oba zostały wyrównane na górze i ułożone od lewej do prawej, w jaki sposób mogę to osiągnąć za pomocą tego menedżera układu? Kod Pisałem jest następujący:
public GameSelectionPanel(){
setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
setAlignmentY(TOP_ALIGNMENT);
setBorder(BorderFactory.createLineBorder(Color.black));
JPanel botSelectionPanel = new JPanel();
botSelectionPanel.setLayout(new BoxLayout(botSelectionPanel, BoxLayout.Y_AXIS));
botSelectionPanel.setBorder(BorderFactory.createLineBorder(Color.red));
JLabel command = new JLabel("Please select your opponent:");
ButtonGroup group = new ButtonGroup();
JRadioButton button1 = new JRadioButton("hello world");
JRadioButton button2 = new JRadioButton("hello world");
JRadioButton button3 = new JRadioButton("hello world");
JRadioButton button4 = new JRadioButton("hello world");
group.add(button1);
group.add(button2);
group.add(button3);
group.add(button4);
botSelectionPanel.add(command);
botSelectionPanel.add(button1);
botSelectionPanel.add(button2);
botSelectionPanel.add(button3);
botSelectionPanel.add(button4);
JPanel blindSelectionPanel = new JPanel();
blindSelectionPanel.setBorder(BorderFactory.createLineBorder(Color.yellow));
blindSelectionPanel.setLayout(new BoxLayout(blindSelectionPanel, BoxLayout.Y_AXIS));
JRadioButton button5 = new JRadioButton("hello world");
JRadioButton button6 = new JRadioButton("hello world");
ButtonGroup group2 = new ButtonGroup();
group2.add(button5);
group2.add(button6);
JLabel blindStructureQuestion = new JLabel("Please select the blind structure:");
blindSelectionPanel.add(blindStructureQuestion);
blindSelectionPanel.add(button5);
blindSelectionPanel.add(button6);
add(botSelectionPanel);
add(blindSelectionPanel);
setVisible(true);
}
Wow dude ładny link o tej klasie GBC. Chociaż zacząłem używać pełnego konstruktora GridBagConstraints. Nauczyłem się pozycji parametrów. Ale dla małych GUI GBC jest drogą do zrobienia. Dla większych GUI uważam, że najlepszym rozwiązaniem jest jednoliniowy konstruktor GridBagConstraints. – Timmos
Konstruktor GridBagLayout nie ma parametru wejściowego –
Twoja próba daje wyjątek w wątku "AWT-EventQueue-0" java.lang.IllegalArgumentException: niedozwolona wartość zakotwiczenia –