微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JFrame 背景颜色是不是在改变?

如何解决JFrame 背景颜色是不是在改变?

我正在尝试更改 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) 更改那些颜色,但似乎没有颜色出现,所以如果我错过了一个步骤或将代码包含在错误的位置,我会感到困惑。

解决方法

框架的“内容窗格”是一个覆盖整个框架的 JPanel。所以你需要改变内容窗格的背景。

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

阅读有关 Using Top Level Container 的 Swing 教程中的部分,以更好地了解框架的结构。

这可能是因为我在框架中添加了其他面板?

是的,默认情况下面板是不透明的,因此它们将绘制在内容窗格的顶部。您可以使这些面板不透明:

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

现在您的子面板是透明的,因此将显示内容面板的背景。

或者,如果您让面板不透明(默认情况下)并执行以下操作:

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。