Java窗口是指JFrame或者Frame

其次,窗口背景颜色是指直接调用JFrame或者Frame的setBackground(Color color)方法设置后显示出来的颜色。其实,J在你直接调用这个方法后,你的确设置了背景颜色,而你看到的却不是直接的JFrame或者Frame,而是JFrame.getContentPane().而JFrame上的contentPane默认是Color.WHITE的,所以,无论你对JFrame或者Frame怎么设置背景颜色,你看到的都只是contentPane.

最后,讲解决办法:

办法A:在完成初始化,调用getContentPane()方法得到一个contentPane容器,然后将其设置为不可见,即setVisible(false)。这样,你就可以看到JFrame的庐山真面貌啦!

核心代码this.getContentPane().setVisible(false);//得到contentPane容器,设置为不可见



方法B:将contentPane的颜色设置为你想要的颜色,而不

java中的背景图片 java背景图片怎么设置_Test

是对JFrame本身设置,

核心代码:this.getContentPane().setBackground(Color.red);//设置contentPane为红色

将核心代码替换方法A核心代码即可实现

方法C:为JFrame添加一个Panel或者JLabel等其他组件,设置其颜色为你想要的颜色,然后将其覆盖JFrame窗口即可

JFrame默认是BorderLayoutJPanel默认是FlowLayout。


1.JFrame设置背景色,注意体会注释的

package com.tools;    import java.awt.Color; 
   import javax.swing.JFrame;
 public class Test extends JFrame
 {
 public static void main(String[] args)
 {
    new Test();
 }


 public Test()
 {
    this.setSize(400,300);
    this.setLocation(400,300);
    this.setBackground(Color.blue);
    this.getContentPane().setBackground(Color.red);
    this.getContentPane().setVisible(false);//如果改为true那么就变成了红色。
 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);
 }
 }


2.给JFrame设置背景图片。


      方法1:通过在JFrame中添加一个JPanel,背景图片放在JPanel上来实现。代码如下:


import javax.swing.*;  
 public class Test extends JFrame
 {
 //创建一个容器
 Container ct;
 //创建背景面板。
 BackgroundPanel bgp;

 //创建一个按钮,用来证明我们的确是创建了背景图片,而不是一张图片。
 JButton jb;
 public static void main(String[] args)
 {
    new Test();
 }
 public Test()
 {
    //不采用任何布局方式。
 ct=this.getContentPane();
    this.setLayout(null);

    //在这里随便找一张400*300的照片既可以看到测试结果。
 bgp=new BackgroundPanel((new ImageIcon("images\\background.jpg")).getImage());
    bgp.setBounds(0,0,400,300);
    ct.add(bgp);

    //创建按钮
 jb=new JButton("测试按钮");
 jb.setBounds(60,30,160,30);
    ct.add(jb);

    this.setSize(400,300);
    this.setLocation(400,300);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);
 }
 }
 class BackgroundPanel extends JPanel
 {
 Image im;
 public BackgroundPanel(Image im)
 {
    this.im=im;
    this.setOpaque(true);
 }
 //Draw the back ground.
 public void paintComponent(Graphics g)
 {
    super.paintComponents(g);
    g.drawImage(im,0,0,this.getWidth(),this.getHeight(),this);

 }
 }


方法2:我们用JLayeredPane,JLayeredPane 为 JFC/Swing 容器添加了深度,允许组件在需要时互相重叠。Integer 对象指定容器中每个组件的深度,其中编号较高的组件位于其他组件


个人方法2:我们用JLayeredPane,JLayeredPane 为 JFC/Swing 容器添加了深度,允许组件在需要时互相重叠。Integer 对象指定容器中每个组件的深度,其中编号较高的组件位于其他组件方法2:我们用JLayeredPane,JLayeredPane 为 JFC/Swing 容器添加了深度,允许组件在需要时互相重叠。Integer 对象指定容器中每个组件的深度,其中编号较高的组件位于其他


java中的背景图片 java背景图片怎么设置_Test_02

 


/** 
    
 * 给JFrame 添加一个背景图案。     
 */     
 package com.swingpractise;     
 import javax.swing.*; public class JFrameBackground4 extends JFrame     
 {     
 //创建一个JLayeredPane用于分层的。     
 JLayeredPane layeredPane;     
 //创建一个Panel和一个Label用于存放图片,作为背景。     
 JPanel jp;     
 JLabel jl;     
 ImageIcon image;     

 //创建一个按钮用于测试的。     
 JButton jb;     
 public static void main(String[] args)     
 {     
    new JFrameBackground4();     
 }     

 public JFrameBackground4()     
 {     
    layeredPane=new JLayeredPane();     
    image=new ImageIcon("images\\background.jpg");//随便找一张图就可以看到效果。      
 //创建背景的那些东西     
 jp=new JPanel();     
    jp.setBounds(0,0,image.getIconWidth(),image.getIconHeight());    jl=new JLabel(image);     
 //   jl.setBounds(0,0,image.getIconWidth(),image.getIconHeight());     
    jp.add(jl);     

    //创建一个测试按钮     
 jb=new JButton("测试按钮");     
 jb.setBounds(100,100,100,100);     

    //将jp放到最底层。     
 layeredPane.add(jp,JLayeredPane.DEFAULT_LAYER);     
    //将jb放到高一层的地方     
 layeredPane.add(jb,JLayeredPane.MODAL_LAYER);     

    this.setLayeredPane(layeredPane);     
    this.setSize(image.getIconWidth(),image.getIconHeight());     
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     
    this.setLocation(image.getIconWidth(),image.getIconHeight());     
    this.setVisible(true);     
 }     
 }


java中的背景图片 java背景图片怎么设置_java中的背景图片_03


java中的背景图片 java背景图片怎么设置_Test_04




第二个程序和三个程序的窗体