关于Frame加背景的那点事?
最近新生问我一个问题,继承自Frame(可不是继承自JFrame)的框架怎样添加背景图片,
真够坑的,当时还真懵了,废话少说直接上代码:
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
public class myFrame extends Frame {
public myFrame() {
this.setBounds(300, 300, 1000, 800);
// this.setBackground(Color.red);
this.setVisible(true);
}
public void paint(Graphics g) {//重写paint方法
super.paint(g);
BufferedImage image;
try {
image = ImageIO.read(new File("/Users/feifei/Desktop/1.png"));//注意地址的形式,笔者是在Mac上写的
g.drawImage(image, 0, 0, null);
} catch (IOException e) {
e.printStackTrace();
}
}
}
class m_method{
public static void main(String[] args) {
myFrame yFrame = new myFrame();
yFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
能看的出来,解决的方案就是,重写paint方法(图片的地址是Mac上的地址,只需改成Windows上的就行了),问题就解决了!