又是菜鸟求助
[code=Java][/code] public class Xianshiping {
public static void main (String args[]) {
ImageFrame frame = new ImageFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class ImageFrame extends JFrame{
// 显示文本
public void paint(Graphics g) {
g.setFont(new Font("SansSerif",Font.PLAIN,500));
g.drawString("95.5", 30, 550);
}
//设置背景图片
public ImageFrame()
{
setTitle("ImageTest");
setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
ImagePanel panel = new ImagePanel();
add(panel);
}
public static final int DEFAULT_WIDTH=500;
public static final int DEFAULT_HEIGHT=500;
}
class ImagePanel extends JPanel{
public ImagePanel(){
try{
image = ImageIO.read(new File("img.jpg"));
}
catch (
IOException e)
{
e.printStackTrace();
}
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
if(image==null) return;
int imageWidth=image.getWidth(this);
int imageHeight=image.getHeight(this);
g.drawImage(image,0,0,null);
for(int i=0;i*imageWidth<=getWidth();i++)
for(int j=0;j*imageHeight<=getHeight();j++)
if(i+j>0)
g.copyArea(0,0,imageWidth,imageHeight,i*imageWidth,j*imageHeight);
}
private Image image;
}
为什么我运行起来的时候只显示文字 不显示图片。而且当我把显示文字的代码注释掉之后,就能显示图片了。这是什么原因,求帮助,谢谢!
------解决方案--------------------
是不是因为你重写了 paint 函数,而又没有调用 super ?
public void paint(Graphics g) {
super.paint(g);
g.setFont(new Font("SansSerif",Font.PLAIN,500));
g.drawString("95.5", 30, 550);
}