import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.awt.Color;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class MyChessFrame extends JFrame implements MouseListener{
public MyChessFrame() {
JFrame jf = new JFrame();
this.setTitle("标题");
this.setSize(1024,768);
this.setResizable(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
int width =Toolkit.getDefaultToolkit().getScreenSize().width;
int height =Toolkit.getDefaultToolkit().getScreenSize().height;
this.setLocation((width-200)/2, (height-100)/2);
this.addMouseListener(this);
this.setVisible(true);
}
public void paint(Graphics g) {
BufferedImage image=null;
try {
image = ImageIO.read(new File("E:/image/background.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
g.drawImage(image,0,0,this);
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}
测试类Text.java
package org.liky.game.test;
import javax.swing.JOptionPane;
import org.liky.game.Frame.MyChessFrame;
public class Text {
public static void main(String[] args) {
MyChessFrame mf = new MyChessFrame();
}
}
这个程序在MyChessFrame类中,将衣服图作为背景,我用的类中
public void paint(Graphics g) {
BufferedImage image=null;
try {
image = ImageIO.read(new File("E:/image/background.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
g.drawImage(image,0,0,this);
}
方法中,但是背景图显示的不完整;这是怎么回事?请各位高手指教.
3 个解决方案
#1
"一幅图",不是"衣服图"不好意思,写错了。
#2
是不是你选的图片比你程序的显示范围大啊
java里边是不是也有几种显示模式啊,就像桌面背景的拉伸或者平铺一样?
java里边是不是也有几种显示模式啊,就像桌面背景的拉伸或者平铺一样?
#3
一定是你选的图片超出你程序的显示区域了,在设置框架、面板或是按钮的背景时,就好设置一下背景图片的大小,即让它填满整个组件。在这个public void paint(Graphics g)方法画图片的画笔中添加框架的大小:g.drawImage(image,0,0,mf.getWidth(),mf.getHeight(),this); ,这样就可以啦。
#1
"一幅图",不是"衣服图"不好意思,写错了。
#2
是不是你选的图片比你程序的显示范围大啊
java里边是不是也有几种显示模式啊,就像桌面背景的拉伸或者平铺一样?
java里边是不是也有几种显示模式啊,就像桌面背景的拉伸或者平铺一样?
#3
一定是你选的图片超出你程序的显示区域了,在设置框架、面板或是按钮的背景时,就好设置一下背景图片的大小,即让它填满整个组件。在这个public void paint(Graphics g)方法画图片的画笔中添加框架的大小:g.drawImage(image,0,0,mf.getWidth(),mf.getHeight(),this); ,这样就可以啦。