簡體   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