eclipse swt如何添加背景图片

eclipse swt如何添加背景图片,第1张

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()

}

}

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))//设置标签的图片


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11815201.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存