怎么在SWING中设置背景图片?

时间:2022-11-17 19:08:28
我想着是用BorderLayout布局管理器,然后用了一个JLABLE组件放了一张图片,
我现在想把这个图片做为背景,然后在背景上面再放组件。。
多谢高手相助!

18 个解决方案

#1


不是吧,这么简单的东东都没人愿意帮忙啊/

#2


Jlable貌似不能再放组件了

#3


icon

#4


那就在最底层的panel上绘图吧

#5


JPanel contentPane = new JPanel();
在contentPane上把背景图画上,重写JPanel 的 protected void paintComponent(...)
frame.setContentPane(contentPane);

#6


5楼该的分

#7


5楼的可以实现效果,但是不推荐使用。
正确的应该是放在JFrame的layeredPane上,然后将content.setOpaque(false)。e.g.:
package tmp;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class BgFrame extends JFrame {
    public BgFrame() {
        super("Bg Frame Demo");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(300,300);

        ImageIcon img = new ImageIcon("img.jpg");
        JLabel bgLabel = new JLabel(img);
         this.getLayeredPane().add(bgLabel, new Integer(Integer.MIN_VALUE));
        bgLabel.setBounds(0,0,img.getIconWidth(),img.getIconHeight());

        this.getContentPane().add(new JLabel("Hello Background"));
         ((JPanel)getContentPane()).setOpaque(false);

        setVisible(true);
    }

    public static void main(String[]   args)   {
        BgFrame f = new BgFrame();
    }

#8


用不着那么多代码吧 如果是放一个 label上去的话 直接这么打

lblPic.setIcon(new ImageIcon("path"));

注: path可以是绝对路径也可以是相对路径 ,当然推荐相对路径了,直接存放在工程下面就可以了。

例: lblPic.setIcon(new ImageIcon("099910991.jpg"));

#9


晕。看错题目了。其实只要把控件放好 把图片拉大就好了。

#10


8楼的,讲的蛮好! 推荐相对路径是明知的选择!!

#11


该回复于2008-01-28 09:31:05被版主删除

#12


谢谢各位大虾们~小弟第一天来,收获不小` 

#13


定义面板
JPanel panel=new JPanel();
定义标签
JLabel label=new JLabel();
label.setIcon(new ImageIcon("图片路径"));
panel.add(label);

#14


学习了。。。

#15


引用 13 楼 dingdingbudong 的回复:
定义面板
JPanel panel=new JPanel();
定义标签
JLabel label=new JLabel();
label.setIcon(new ImageIcon("图片路径"));
panel.add(label);

大哥JLabel上面不能再放其他容器了,怎么做背景图片呢?

#16


这个jframe有没有完整的章节啊?给个网址吧!

#17


引用 7 楼 stevech 的回复:
5楼的可以实现效果,但是不推荐使用。
正确的应该是放在JFrame的layeredPane上,然后将content.setOpaque(false)。e.g.:
package tmp;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class BgFrame extends ……

7楼的方法,怎样让JFrame自适应背景图片的大小!

#18


学习来的

#1


不是吧,这么简单的东东都没人愿意帮忙啊/

#2


Jlable貌似不能再放组件了

#3


icon

#4


那就在最底层的panel上绘图吧

#5


JPanel contentPane = new JPanel();
在contentPane上把背景图画上,重写JPanel 的 protected void paintComponent(...)
frame.setContentPane(contentPane);

#6


5楼该的分

#7


5楼的可以实现效果,但是不推荐使用。
正确的应该是放在JFrame的layeredPane上,然后将content.setOpaque(false)。e.g.:
package tmp;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class BgFrame extends JFrame {
    public BgFrame() {
        super("Bg Frame Demo");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(300,300);

        ImageIcon img = new ImageIcon("img.jpg");
        JLabel bgLabel = new JLabel(img);
         this.getLayeredPane().add(bgLabel, new Integer(Integer.MIN_VALUE));
        bgLabel.setBounds(0,0,img.getIconWidth(),img.getIconHeight());

        this.getContentPane().add(new JLabel("Hello Background"));
         ((JPanel)getContentPane()).setOpaque(false);

        setVisible(true);
    }

    public static void main(String[]   args)   {
        BgFrame f = new BgFrame();
    }

#8


用不着那么多代码吧 如果是放一个 label上去的话 直接这么打

lblPic.setIcon(new ImageIcon("path"));

注: path可以是绝对路径也可以是相对路径 ,当然推荐相对路径了,直接存放在工程下面就可以了。

例: lblPic.setIcon(new ImageIcon("099910991.jpg"));

#9


晕。看错题目了。其实只要把控件放好 把图片拉大就好了。

#10


8楼的,讲的蛮好! 推荐相对路径是明知的选择!!

#11


该回复于2008-01-28 09:31:05被版主删除

#12


谢谢各位大虾们~小弟第一天来,收获不小` 

#13


定义面板
JPanel panel=new JPanel();
定义标签
JLabel label=new JLabel();
label.setIcon(new ImageIcon("图片路径"));
panel.add(label);

#14


学习了。。。

#15


引用 13 楼 dingdingbudong 的回复:
定义面板
JPanel panel=new JPanel();
定义标签
JLabel label=new JLabel();
label.setIcon(new ImageIcon("图片路径"));
panel.add(label);

大哥JLabel上面不能再放其他容器了,怎么做背景图片呢?

#16


这个jframe有没有完整的章节啊?给个网址吧!

#17


引用 7 楼 stevech 的回复:
5楼的可以实现效果,但是不推荐使用。
正确的应该是放在JFrame的layeredPane上,然后将content.setOpaque(false)。e.g.:
package tmp;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class BgFrame extends ……

7楼的方法,怎样让JFrame自适应背景图片的大小!

#18


学习来的