java中swing界面上怎么给jpanel上添加背景图片

 我来答
awydss
2015-07-31 · TA获得超过274个赞
知道小有建树答主
回答量:560
采纳率:0%
帮助的人:305万
展开全部
      //重写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 动态改变背景大小

而庅没页65
推荐于2016-11-25 · TA获得超过876个赞
知道小有建树答主
回答量:295
采纳率:100%
帮助的人:140万
展开全部
import javax.swing.JPanel;
import java.awt.Image;
import javax.swing.ImageIcon;
import java.awt.Graphics;
class GetPanel extends JPanel {
private static final long serialVersionUID = 1L;
int width = 0, hight = 0;
String imgpath = "";
public GetPanel(int width, int hight, String file) {
this.width = width;
this.hight = hight;
imgpath = file;
}
protected void paintComponent(Graphics g) {
ImageIcon icon = new ImageIcon(imgpath);
Image img = icon.getImage();
g.drawImage(img, 0, 0, width, hight, this);
}
}
GetPanel继承了JPanel,同时又加入了paintComponent()方法。
JPanel jContentPane = new GetPanel(500,375,"login.png");
这样就可以给面板加上背景图片
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雪飞潇潇
2013-12-10 · TA获得超过6273个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:857万
展开全部

代码在附件,你参考下


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式