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)。
答案 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);
}
}