public class MyJFrame extends JFrame {         
  //创建一个容器  
  Container ct;  
  //创建背景面板。  
  BackgroundPanel bgp;         //自定义的背景类   //创建一个按钮,用来证明我们的确是创建了背景图片,而不是一张图片。  
  JButton jb1;  
  JButton jb2;
  JButton jb3;
  JButton jb4;
  JLabel jl1;
  JLabel jl2;
  JLabel jl3;
  JLabel jl4;  public MyJFrame()  
  {  
      //不采用任何布局方式。  
  setTitle("欢迎来到主菜单");
      ct=this.getContentPane();
      this.setLayout(null);        //重新绘制背景图片  
      init1();      this.setSize(800,600);  
      this.setLocation(400,300);  
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
      this.setLocationRelativeTo(null);  
    //设置窗体的图标  
      Image img0 = new ImageIcon("E:/biaoti.png").getImage();  
      this.setIconImage(img0);    
      //窗体大小不能改变  
     this.setResizable(false); 
     
     this.setVisible(true);  
  }  
  
  public void init1(){  
  
  bgp=new BackgroundPanel((new ImageIcon("e:beijing2"
     + ".jpg")).getImage()); //参数是一个Image对象,
    bgp.setBounds(0,0,800,600);  
     
    //创建按钮  
    ImageIcon ii=new ImageIcon("e:xianshi.png");
    jb1=new JButton(ii);  
    jb1.setBounds(60,30,150,150);  
    jb1.addActionListener(new ActionListener()
    {
     public void actionPerformed(ActionEvent e) 
     {
    
            new MyJFrame1();
     }
     
    });
    //ct.add(jb1);  
    jl1=new JLabel("状态显示");
    jl1.setBounds(95, 180, 95, 45);  
    jl1.setFont(new   java.awt.Font("TimesRoman",   1,   20));   
    //  “dialog”代表字体,1代表样式(1是粗体,0是平常的)15是字号
      //设置字体
      jl1.setForeground(Color.white);
    ct.add(jl1);
    
    
    ImageIcon iii=new ImageIcon("e:dayin1.png");
    jb2=new JButton(iii);  
    jb2.setBounds(300,30,150,150);  
    
    jb2.addActionListener(new ActionListener()
    {
     public void actionPerformed(ActionEvent e) 
     {
    
            new MyJFrame2();
     }
     
    });
  
    jl2=new JLabel("历史数据打印");
    jl2.setBounds(315, 180, 135, 45);  
    jl2.setFont(new   java.awt.Font("TimesRoman",   1,   20));   
    //  “dialog”代表字体,1代表样式(1是粗体,0是平常的)15是字号
      //设置字体
      jl2.setForeground(Color.white);
    ct.add(jl2);
   
    Image iiii=new ImageIcon("e:kongzhi.png").getImage();
    jb3=new JButton();
    jb3.setBounds(540,30,150,150); 
    jb3.setIcon(new ImageIcon(iiii));
         jb3.addActionListener(new ActionListener()
    {
     public void actionPerformed(ActionEvent e) 
     {
    
            new MyJFrame3();
     }
     
    });
   // ct.add(jb3); 
    jl3=new JLabel("电机控制");
    jl3.setBounds(578, 180, 95, 45); 
    
    jl3.setFont(new   java.awt.Font("TimesRoman",   1,   20));   
    //  “dialog”代表字体,1代表样式(1是粗体,0是平常的)15是字号
      //设置字体
      jl3.setForeground(Color.white);
    ct.add(jl3);
    
    
    ImageIcon iiiii=new ImageIcon("e:shezhi.png");
    jb4=new JButton(iiiii);  
    
    jb4.setBounds(60,250,150,150);  
    jb4.addActionListener(new ActionListener()
    {
     public void actionPerformed(ActionEvent e) 
     {
    
            new MyJFrame4();
     }
     
    });
    jl4=new JLabel("阈值设置");
    jl4.setBounds(95, 400, 95, 45); 
    jl4.setFont(new   java.awt.Font("TimesRoman",   1,   20));   
    //  “dialog”代表字体,1代表样式(1是粗体,0是平常的)15是字号
      //设置字体
      jl4.setForeground(Color.white);
    ct.add(jl4);
        
    ct.add(bgp);  
   
 ct.add(jb1);  
     ct.add(jb2);
    ct.add(jb3);
    ct.add(jb4);
         
  }
    
    
    
  public static void main(String[] args)  
  {  
      new MyJFrame();  
     
  }  
}  
class BackgroundPanel extends JPanel  
{  
  Image im;  
  public BackgroundPanel(Image im)  
  {  
      this.im=im;  
     // this.setOpaque(false);           //设置控件不透明,若是false,那么就是透明
     
  }  
  //Draw the background again,继承自Jpanle,是Swing控件需要继承实现的方法,而不是AWT中的Paint()
  public void paintComponent(Graphics g)       //绘图类,详情可见博主的Java 下 java-Graphics 
  {  
  
      
  super.paintComponents(g);  
      g.drawImage(im,0,0,this.getWidth(),this.getHeight(),this);  //绘制指定图像中当前可用的图像。图像的左上角位于该图形上下文坐标空间的 (x, y)。图像中的透明像素不影响该处已存在的像素  }  
 
}