jframe的背景色没有改变吗?

4sup72z8  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(330)

**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

四天前关门了。
改进这个问题
我试图改变我的jframe的颜色,但由于某些原因它没有改变,仍然是默认的灰色?这是我在添加所有面板和元素之前包含的代码:

private static void guiApp()
{

    //frame 2
    frame2.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    frame2.setLocation(100,50);
    frame2.setBackground(Color.red);

这可能是因为我在框架上添加了其他面板吗?我试过用panel.setbackground(color.red)来改变那些颜色,但是似乎没有出现任何颜色,所以如果我错过了一个步骤或者在错误的位置包含了代码,我会感到困惑。

de90aj5v

de90aj5v1#

框架的“内容窗格”是一个覆盖整个框架的jpanel。因此您需要更改内容窗格的背景。

frame.getContentPane().setBackground( Color.RED ):

阅读swing教程中关于使用顶级容器的部分,以更好地理解框架的结构。
这可能是因为我在框架上添加了其他面板吗?
是的,默认情况下面板是不透明的,因此它们将在内容窗格的顶部绘制。您可以使这些面板不不透明:

panel.setOpaque( false );
frame.add(panel, BorderLayout.CENTER);

现在您的子面板是透明的,因此内容窗格的背景将显示出来。
或者,如果您使面板保持不透明(默认情况下为),并执行以下操作:

panel.setBackground( Color.BLUE);
frame.add(panel, BorderLayout.CENTER);

然后“蓝色”面板将覆盖“红色”内容窗格。

相关问题