怎样在java小程序中加入背景图片。连连看小游戏的代码请问怎样在里面插入背景图啊?

怎样在java小程序中加入背景图片。连连看小游戏的代码请问怎样在里面插入背景图啊?,第1张

背景图片有两种方式,可用jlabel的构造函数具体看api,另外一个方法就是重写paintComponent()函数,给你个例子,

Toolkit tk = Toolkit.getDefaultToolkit()

private Image bground = tk.createImage("D://workpalce//MarketManagement//src//images//bgd2.gif")

protected void paintComponent(Graphics g) {

g.drawImage(bground, 0, 0, this.getWidth(), this.getHeight(), this)

}

我之前有个源码丢失了,反编译后是这样子的。

大致就是先通过 Java Advanced Image IO (JAI, 在 Oracle 上下载) 把图片读取到内存,然后缩放后设置成 ImageIcon 显示到一个 Panel 上。直接让 Swing 自己读取图片时好像不会自动缩放的。

FileInputStream input = new FileInputStream(path)

BufferedImage image = ImageIO.read(input)

image = scale(image, width, max)

 ProductFrame.this.setIcon(new ImageIcon(image))

 

 private BufferedImage scale(BufferedImage image, int from, int to)

    {

        if(from > to)

        {

            double scale = (double)to / (double)from

            ParameterBlock pb = new ParameterBlock()

            pb.addSource(image)

            pb.add(scale)

            pb.add(scale)

            pb.add(0.0D)

            pb.add(0.0D)

            RenderingHints qualityHints = new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY)

            RenderedOp resizedImage = JAI.create("SubsampleAverage", image, Double.valueOf(scale), Double.valueOf(scale), qualityHints)

            return resizedImage.getAsBufferedImage()

        } else

        {

            return image

        }

    }

不知道你说的特定jre是什么意思,不是一个只有有限功能的jre,比如嵌入式平台,如果是这样我建议你先用标准javase开发一个程序然后把图片变成数组存到文件里去,然后你直接读这个文件就可以了。可以用BufferedImage的getRGB(int x, int y)来获得每一个点得像素值然后存入到文本文件,你的程序只要读这个文本就可以了。

当然你可以再你那个专用jre上在加入一个Jpg读取功能,不过如果他本身不支持,你加上去就费劲很多。


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

原文地址:https://54852.com/bake/11605114.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存