添加多个对象

时间:2016-03-25 12:13:24

标签: java swing object

public class Game extends JFrame implements ActionListener{

Drawing object=new Drawing();  
Timer t=new Timer(1,this);
int score;
ArrayList<Enemy> bombs=new ArrayList<Enemy>();

public Game()
{
    t.start();

    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setSize(700,600);
    setVisible(true);
    add(object);
    add(new JLabel("Hello"));
    validate();
    createBombs();
}

为什么我无法添加JLabel和Object。只有其中一个出现。 (JLabel)。

1 个答案:

答案 0 :(得分:2)

JFrame默认为BorderLayout。在BorderLayout add方法中将给定组件添加到CENTER位置。

所以:

 add(object);
 add(new JLabel("Hello"));

使用这些行,您可以将这两个项目添加到CENTER位置。例如,如果您将标签添加到SOUTH位置,则object将可见。

 add(object);
 add(new JLabel("Hello"), BorderLayout.SOUTH);

修改

正如@camickr所说,你必须在添加所有组件后调用setVisible(true)。请看下面的代码。

public class Game extends JFrame implements ActionListener {

    Drawing object = new Drawing();
    Timer t = new Timer(1, this);
    int score;
    ArrayList<Enemy> bombs = new ArrayList<Enemy>();

    public Game() {
        t.start();

        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(700, 600);
        add(object);
        add(new JLabel("Hello"));
        validate();
        createBombs();

        setVisible(true);
    }
}