繁体   English   中英

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

[英]How to add a JLabel to a class which extends JPanel

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

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

我怎么能做到? 提前致谢。

使用this.add()而不是Gamelabel.add()

你不能调用Gamelabel.add()因为要调用Gamelabel.add()应该在Gamelabel类中有一个静态方法add()但 Gamelabel 有一个继承的实例方法add()而不是静态方法。

   public void Gamelabel() {
        JLabel mylabel = new JLabel();
        mylabel.setBounds(0, 0, 1280, 720);
        mylabel.setVisible(true); //unnecessary 
        this.add(mylabel);
    }

也使用布局管理器。在你的代码中你不能使用setBounds()方法,因为面板布局是 flow (default) 。 setbounds用于不使用布局管理器时的绝对定位。 所以阅读如何使用布局管理器流布局

还有mylabel.setVisible(true); 是不必要的,因为jlablejframe不同,默认情况下是可见的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM