如何解决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 举报,一经查实,本站将立刻删除。