从前面文本框技术可以看出我们在Swing开发过程中,有我们自己需要的特殊功能实现时,一般都需要继承与覆盖! 那么我们在绘制背景图片的时候,也是需要用到方法覆盖!

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class MainJFrame extends JFrame{
private ImageJPanel ip;

      public MainJFrame() {
       initial();
      }
    
      public void initial()
      {
       ip=new ImageJPanel();
       this.setTitle("Demo");
       this.setSize(400,300);
       this.setResizable(false);
       this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       this.setLocationRelativeTo(this);
       Container c=this.getContentPane();
       c.setLayout(null);
     
       ip.setBounds(0,0,this.getWidth(),this.getHeight());
       c.add(ip);
     
       this.setVisible(true);
      }
    
      public static void main(String[] args)
      {
       new MainJFrame();
      }
    
}
class ImageJPanel extends JPanel
{
private ImageIcon ii;
public ImageJPanel()
{
    //bk.jpg是指背景图片的名称,现在我使用的是相对路径即当前路径
    ii=new ImageIcon("bk.jpg");
} 
  
//绘制背景图片 我们需要覆盖paintComponent(Graphics g)方法
public void paintComponent(Graphics g)
{
    super.paintComponent(g);
    //四个参数分别代表 图片 绘制的开始点横坐标 纵坐标 绘制到哪儿 
    g.drawImage(ii.getImage(),0,0,this);
    //也可以使用更多的参数 来进一步控制绘制的 图片大小
}