Ich versuche, ein einfaches Programm in Java, die 8 JLabels
auf der Oberseite mit einem JButton
direkt darunter zu machen. Ich versuchte mit BoxLayout
und dann FlowLayout
, aber was passiert, ist die JLabels
verschwinden am Anfang des Programms. Wenn auf button
geklickt wird, wird alles ordnungsgemäß angezeigt, aber Sie müssen die Größe des Fensters manuell ändern. Könnte jemand erklären, was ich falsch mache? Vielen Dank!Java GUI Layout Probleme
public class ProgramUI {
private JButton _jbutton;
private ArrayList<JLabel> _jlabels;
private JFrame _jframe;
private JPanel _top, _bottom;
public ProgramUI(){
_jframe = new JFrame();
_jframe.getContentPane().setLayout(new BoxLayout(_jframe.getContentPane(), BoxLayout.Y_AXIS));
_top = new JPanel();
_jframe.add(_top);
_bottom = new JPanel();
_jframe.add(_bottom);
_top.setLayout(new FlowLayout(FlowLayout.LEFT));
_bottom.setLayout(new FlowLayout(FlowLayout.LEFT));
_jlabels = new ArrayList<JLabel>();
for (int i=0; i<8; i++) {
JLabel label = new JLabel();
_jlabels.add(label);
_top.add(label);
//...rest of code is not relevant
}
_jbutton = new JButton();
_bottom.add(_jbutton);
_jframe.pack();
_jframe.setVisible(true);
_jframe.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
}