如何使用Java AWT setBackground

3

这是创建基本Java窗口的一些代码:

JPanel pane = new JPanel();
gui(String title){
    super(title);
    setBounds(100,100,500,500);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container con = this.getContentPane();
*   con.setBackground(new Color(0,0,0));
    con.add(pane);
    setVisible(true);
}

带星号的行(*)是为了使窗口的背景色为黑色(0,0,0)。然而,那一行似乎毫无作用。(我已经尝试在这里使用pane.setBackground,但没有任何区别。)

我该如何更改背景颜色?


为了更快地获得更好的帮助,请发布一个SSCCE - Andrew Thompson
3个回答

5
你已经将 JPanel 添加到了 JFrame 上,完全遮挡了底部容器的颜色设置。
你可以尝试以下方式代替:
public Gui(String title) {
   super(title);
   JPanel pane = new JPanel();
   setBounds(100, 100, 500, 500);
   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   Container con = this.getContentPane();
   pane.setBackground(new Color(0, 0, 0));
   con.add(pane);
   setVisible(true);
}

我尝试添加了它,但没有改变。具体放在哪里? - ACarter
它应该放在星号*所在的位置。 - Reimeus
这没有任何区别?有什么线索吗? - ACarter
它对我有效。我已经发布了我正在使用的完整构造函数。 - Reimeus
啊,代码的另一部分导致它变成白色。对此我感到抱歉。 - ACarter
显示剩余2条评论

1

您无法为JFrame的内容窗格设置背景颜色。 我的意思是:

 JFrame f = new JFrame() ;
 f.setBackground(Color.RED) ;

你应该做的是创建一个JPanel,它将作为你的背景,并设置其颜色,如下所示:

backgroundPanel.setBackground(Color.RED);


我尝试添加了那个,但没有任何区别。我应该把它放在哪里? - ACarter
1
为什么无法为JFrame的内容窗格设置背景颜色?对我来说,JFrame#setBackgroundJFrame#getContentPane#setBackground都可以正常工作。 - MadProgrammer
哎呀,你说得对。应该是JFrame.setBackground(Color.RED)。当你看到这条评论后,我会删除我的回答。 - Lews Therin
@MadProgrammer 我会做到的 :P - Lews Therin

0
Jframe f =new Jframe();
f.setBackground(Color.red);

这也可能解决手头的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接