首先,使用layout。正确完成布局后,组件将按照需要放置。其次,在向布局动态添加组件时,您需要告诉布局更新。这是一个示例,它在每次按下按钮时添加一个标签:
public static void main(String[] args) { final Jframe frame = new Jframe("Test"); frame.setLayout(new GridLayout(0, 1)); frame.add(new JButton(new AbstractAction("Click to add") { @Override public void actionPerformed(ActionEvent e) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { frame.add(new JLabel("Bla")); frame.validate(); frame.repaint(); } }); } })); frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE); frame.setSize(400, 300); SwingUtilities.invokeLater(new Runnable() { @Override public void run() { frame.setVisible(true); } });}


