从前面文本框技术可以看出我们在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);
//也可以使用更多的参数 来进一步控制绘制的 图片大小
}