panel组件怎样添加背景图片,要平铺的的解决方案列表

panel组件怎样添加背景图片,要平铺的的解决方案列表,第1张

总结:image组件放panel上,添加图片,align属性设置为alclient可以随着最大最小化,自动调整,image的扩展属性设置为true,覆盖整个panel.tlabel组件有个透明属性,设置为ture,则显示字体,背景则与其所属组件背景一致;另,使用tlabel组件可能会出现字体竖排的情况,跟字体选择有关,更换不同的字体,可以更正。以上,供了解

要在panel上面加图片,需要重写paint方法,那样就麻烦了,JLabel有现成的设置方法;

JLabel l=new JLabel()

Icon icon=new ImageIcon("D:\\a.jpg")//在此直接创建对象

l.setIcon(icon)

然后把你原来放在panel上的东西放在JLabel上面,再把JLabel放在panel上面就可以了

      //重写JPanel的这个方法就可以了

       @Override  

    public void paintComponent(Graphics gs) {  

        Graphics2D g = (Graphics2D) gs  

        super.paintComponent(g)  

        //画背景图片  

        Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource(imgPath))  

        g.drawImage(image, 0, 0,width,height, this)  

    }

一个完整的代码:

package test

import java.awt.Graphics

import java.awt.Image

import java.net.URL

import javax.swing.ImageIcon

import javax.swing.JFrame

import javax.swing.JPanel

//为窗口添加背景图片

public class JFrameBackground {

private JFrame frame = new JFrame("带背景图片的JFrame")

private JPanel imagePanel

private ImageIcon backgroundimg

public JFrameBackground() {

imagePanel = new JPanel() {

@Override

protected void paintComponent(Graphics g) {

super.paintComponent(g)

URL location = this.getClass().getResource("grapes.gif")

backgroundimg = new ImageIcon(location)

Image img = backgroundimg.getImage()

g.drawImage(img, 0, 0, backgroundimg.getIconWidth(),

backgroundimg.getIconHeight(),

backgroundimg.getImageObserver())

frame.setSize(backgroundimg.getIconWidth(),

backgroundimg.getIconHeight())

}

}

frame.add(imagePanel)

frame.setVisible(true)

frame.pack()

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

}

public static void main(String[] args) {

new JFrameBackground()

}

}

这是运行的一个截图:

参考网址: 

http://www.linuxidc.com/Linux/2011-08/41689.htm 两种设置背景的方法

http://blog.csdn.net/one_and_only4711/article/details/6594770 动态改变背景大小


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存