如何将JLabel添加到扩展JPanel的类中

时间:2015-09-07 18:25:28

标签: java swing jpanel jlabel extends

正如标题所说,我想将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
*
*/
    }

所以我真的不知道怎么做,但我觉得它一定是一个简单的解决方案......但是,我找不到它。

我怎么能这样做? 提前谢谢。

1 个答案:

答案 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 managersflow layout

setbounds也是不必要的,因为默认情况下mylabel.setVisible(true);jlable不同。