java中我有多个jPanel,如何添加图片

java中我有多个jPanel,如何添加图片,第1张

JPanel p=new JPanel()

JLabel l=new JLabel()

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

l.setIcon(icon)

l.setBounds(0, 0, icon.getIconWidth(),icon.getIconHeight())

p.add(l,new Integer(Integer.MIN_VALUE))

这样可以给panel加一个背景

创建一个Panel的子类,比如ImgPanel:

import java.awt.Graphics

import java.awt.Toolkit

import java.awt.Image

import java.awt.Panel

public class ImgPanel extends Panel {

Image img

public ImgPanel(Image img){

this.img = img

}

@Override

public void paint(Graphics g) {

super.paint(g)

g.drawImage(img, 20,20,40,40, this)//其中第二到第五个参数分别为x,y,width,height

}

}

然后在别的地方添加这个ImgPanel控件就好了,比如:

Panel p = new ImgPanel(Toolkit.getDefaultToolkit().createImage("A:\\projects\\gui\\lightbulb.jpg")))

p.setBounds(0, 0, 80, 80)

this.add(p)

      //重写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/11412452.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存