Позиционирование JLabel на JPanel
public class Test extends JFrame {
JPanel panel = new JPanel();
JLabel label = new JLabel("g");
JLabel label2 = new JLabel("w");
public Test(){
this.setVisible(true);
this.add(panel, BorderLayout.SOUTH));
this.setSize(200,200);
panel.add(label, new FlowLayout(FlowLayout.RIGHT);
panel.add(label2, new FlowLayout(FlowLayout.LEFT);
}
}
Я думал, что это поместит ярлык справа от label2, но разве я не поступлю так?
1 ответ
Проблема в следующем panel.add(label, new FlowLayout(FlowLayout.RIGHT));
это ложная конструкция, ваш JPanel
по умолчанию имеет FlowLayout
и вы добавляете компоненты слева направо или справа налево один за другим. Из-за этого добавьте ваши ярлыки следующим образом:
panel.add(label2);
panel.add(label);
Также:
Вызов setVisible(true);
в конце строительства JFrame
,
использование pack()
метод вместо setSize(200,200);
Читать учебник для LayoutManagers
а также FlowLayout
,