java Swing 设置背景颜色:

由于Swing跟AWT有千丝万缕的联系,它既要支持AWT又要有自己新的体系,所以呢,这个如果对于AWT中的Frame是可以直接通过setBackground来设置背景色,但是对于JFrame则不可以,应该采用下面的方法:
JFrame frame = new JFrame();
frame.getContentPane().setBackground(Color.Red);
而对于JLabel来说则要设置JLabel为不透明的才行,即

JLabel comp = new JLabel(value);
 comp.setBackground(color);
 comp.setOpaque(true);

这句代码frame.setBackground(Color.Red);
改变的是框架的颜色,框架的上面还有窗格,所以你要改变窗格的颜色才可以侧低改变框架的颜色
在主函数里加Containerframe.getContentPane()    意思是获得窗格
 setBackground(Color.Red);改变窗格颜色

java Swing 设置背景图片:

JFrame是由这么几部分组成:最底下一层JRootPane,上面是glassPane(一个JPanel)和layeredPane(一个JLayeredPane), 而layeredPane又由contentPane(一个JPanel)和menuBar构成。   我们一般在JFrame上添加组件往往都是加在contentPane上面

//将图片添加到layeredPane 
  ImageIcon img = new ImageIcon("back.jpg"); 
   JLabel imgLabel = new JLabel(img); //JLabel imgLabel = new JLabel(new ImageIcon("back.jpg"));
   getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE)); 
   imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight()); //背景图片的位置
   //将contentPane设置成透明的 
   ((JPanel)getContentPane()).setOpaque(false);