[英]Why JFrame colour is changing by changing content pane colour?
如果框架放置在内容窗格的顶部,则用户的外部颜色是 JFrame 的颜色。 在这里,即使我在内容窗格之后绘制框架,也会显示内容窗格的颜色。 为什么?
public class GUI {
public static void main(String[] args){
JFrame frame = new JFrame();
frame.setSize(300,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
Color myColor = new Color(100,100,100);
frame.setLocationRelativeTo(null);
frame.getContentPane().setBackground(myColor);
frame.setBackground(Color.red);
}
}
您不应该设置 JFrame 本身的背景。 你可以,是的,但效果不是很好。
它有一个覆盖整个框架的内容窗格,因此正如您发现的那样,“下方”的任何颜色都将被覆盖。
所有布局和样式都应在内容窗格中进行。
但是,您可以将内容窗格设置为您选择的container
,具有特殊的布局或类似内容。
此外,当您说“在内容窗格之后绘制框架”时,这实际上并没有发生。 :) 您在设置内容窗格的背景后设置背景颜色,但在应用程序运行时触发其重绘标志之前,它实际上不会被重绘。
然后它会去检查设置了什么颜色,然后上色。 您调用 setter 的顺序并不重要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.