public void setBackground(Color c)设置组件的背景色。
背景色对每个组件的影响各不相同,并且部分受背景色影响的组件在不同的操作系统之间可能有所不同。
用这个方法嘛,改变不了,可能是你在窗体上添加了别的容器什么的把当前要改变的给挡上了.仔细排查一下,相信你会改过来的.
可以利用color的setBackground方法来进行窗口颜色设定。
class SimpleChangePanel extends JPanel implements ActionListener {
private JButton yellowButton;
public SimpleChangePanel() {
yellowButton = new JButton("Yellow");
add(yellowButton);
yellowButton.addActionListener(this);
}
public void actionPerformed(ActionEvent evt) {
Color color = Color.yellow;
setBackground(color);
repaint();
}
}
因为JFrame窗口,其实从下到上分为好几层:RootPane LayeredPane ContentPane GlassPane
其中最上面的GlassPane是透明的。所以设置背景色,需要设置在ContentPane上才能显示。