如果框架放置在内容窗格的顶部,则用户的外部颜色是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);
}
}
答案 0 :(得分:3)
您不应该设置JFrame本身的背景。你可以,是的,但是效果不好。
它有一个覆盖整个框架的内容窗格,因此任何颜色“下面”都会被掩盖,就像你发现的那样。
所有布局和样式都应该在内容窗格中进行。
您可以将内容窗格设置为您选择的container
,但需要使用特殊布局或其他内容。
此外,当您说“在内容窗格之后绘制框架”时,实际上并未发生这种情况。 :)在设置内容窗格的背景后,您设置背景颜色,但在应用程序运行时触发其重绘标志之前,它实际上不会重新绘制。
然后它会检查设置的颜色和颜色。您调用setter的顺序并不重要。