正如标题所说,我想将JLabel添加到一个扩展JPanel的类(在我的例子中,名为GamePanel)。我试过
public class GamePanel extends JPanel implements Runnable, KeyListener
{
/*Some of my instructions
*
*/
public void gamelabel()
{
JLabel mylabel = new JLabel();
mylabel.setBounds(0, 0, 1280, 720);
GamePanel.add(mylabel); //Here I'm getting an error message
}
/*Others instructions
*
*/
}
所以我真的不知道怎么做,但我觉得它一定是一个简单的解决方案......但是,我找不到它。
我怎么能这样做? 提前谢谢。
答案 0 :(得分:5)
使用this.add()
代替Gamelabel.add()
。
您无法致电Gamelabel.add()
,因为要调用Gamelabel.add()
,add()
类中应该有一个静态方法Gamelabel
,但Gamelabel有一个继承的实例方法{{ 1}}不是静态方法。
add()
也使用布局管理器。在代码中,您不能使用 public void Gamelabel() {
JLabel mylabel = new JLabel();
mylabel.setBounds(0, 0, 1280, 720);
mylabel.setVisible(true); //unnecessary
this.add(mylabel);
}
方法,因为面板布局是流程(默认)。setBounds()
用于不使用布局管理器时的绝对定位。请阅读如何使用layout managers和flow layout。
setbounds
也是不必要的,因为默认情况下mylabel.setVisible(true);
与jlable
不同。