ImageIO.read()
得到一个BufferedImage
JLabel l=new JLabel()//图片标签l.setPreferredSize(new Dimension(200, 200))//设置大小
BufferedImage image=new BufferedImage(l.getWidth(), l.getHeight(), 1)//在内存中创建相同大小的图片缓存
Graphics2D g2=image.createGraphics()//创建内存画笔
BufferedImage srcImage=ImageIO.read(new File("path"))//加载图片
//srcImage.getSubimage(x, y, w, h)//截取指定坐标X,Y开始指定长宽的区域的图片
g2.drawImage(srcImage, 0,0,image.getWidth(),image.getHeight(),null)//将加载的图片绘制到内存中,填满整个图片
l.setIcon(new ImageIcon(image))//设置标签的图片
java中的图形编程上时不能直接加背景图片的,如果相加。我们可以自己写,我给你一个类:这个是一个可以生成背景图片的类。
import java.awt.Dimension
import java.awt.Graphics
import java.awt.Image
import javax.swing.JPanel
/**
* 该类实现自定义的面板,可以显示图片
*
*/
public class ImagePanel extends JPanel{
private static final long serialVersionUID = -5029535020120106282L
/**Image类型的实例*/
private Image img
/**
* 构造函数
* @param img Image 对象
*/
public ImagePanel(Image img)
{
this.img=img
Dimension size=new Dimension(img.getWidth(null),img.getHeight(null))
setSize(size)
setPreferredSize(size)
/* public void setPreferredSize(Dimension preferredSize)将组件的首选大小设置为常量值。
对 getPreferredSize 的后续调用总是返回此值。将首选大小设置为 null 可还原默认的行为*/
setMinimumSize(size)
setMaximumSize(size)
setLayout(null)
}
/**
* 设置图像面板的图像对象
* @param img Image类型对象
*/
public void setImage(Image img) {
this.img = img
}
/**
* 重写父类的方法
*/
public void paintComponent(Graphics g)
{
g.drawImage(img, 0, 0, null)
}
}
下面是使用方法:
import java.awt.Dimension
import java.awt.Toolkit
import java.net.URL
import javax.swing.ImageIcon
import javax.swing.JFrame
public class Member extends JFrame {
public Member() {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
setTitle("会员管理")
setSize(700,600)
//把屏幕定位到中心
Toolkit tool=this.getToolkit()
Dimension di= tool.getScreenSize()
double width=di.getWidth()
double height=di.getHeight()
this.setLocation((int)((width-this.getWidth())/2), (int)((height-this.getHeight())/2))
// //设置背景图片
{
//设置背景图片
URL url = getClass().getResource("/images/1.jpg")//这个是你 的图片的路径,就不用我说了吧,把路径写正确就可以了
if(url != null) {
ImagePanel mai=new ImagePanel(new ImageIcon(url).getImage())
this.add(mai)
}
}
setResizable(false)
setVisible(true)
}
public static void main(String[] args) {
Member m=new Member()
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)