Java怎么添加背景图片?

如图怎么在下面空白区域加上一张背景图片
连俊兰 来自: 网页 2016-07-10 21:26

声明:本网站依照法律规定提供财经资讯,未授权或允许任何组织与个人发布交易广告。对任何广告信息请谨慎交易,谨防诈骗。举报邮箱:xxxxxxxxx@qq.com

2016-07-10 21:38最佳答案

看在50分面子上...从网上找的...
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Test
{

private JFrame frame = new JFrame("背景图片测试");

private JPanel imagePanel ;

private ImageIcon background;

public static void main(String[] args)
{
new Test();
}

public Test()
{
background = new ImageIcon("1.jpg");//背景图片
JLabel label = new JLabel(background);//把背景图片显示在一个标签里面
// 把标签的大小位置设置为图片刚好填充整个面板
label.setBounds(0,0,background.getIconWidth(),background.getIconHeight());
// 把内容窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明
imagePanel = (JPanel)frame.getContentPane();
imagePanel.setOpaque(false);
// 内容窗格默认的布局管理器为BorderLayout
imagePanel.setLayout(new FlowLayout());
JButton b=new JButton("测试按钮");
imagePanel.add(b);
b.setOpaque(false);
frame.getLayeredPane().setLayout(null);
// 把背景图片添加到分层窗格的最底层作为背景
frame.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(background.getIconWidth(),background.getIconHeight());
frame.setVisible(true);
}
}
 

其他回答(共7条)

  • 2016-07-10 21:50 齐春春 客户经理

    import java.awt.*;
    import javax.swing.*;
    public class TestBackgroundColor extends JFrame {
    public static void main(String[] args) {
    TestBackgroundColor tbc = new TestBackgroundColor();
    tbc.setVisible(true);
    }
    private JPanel imagePanel;
    private ImageIcon background;
    public TestBackgroundColor() {
    background = new ImageIcon("C:\\Users\\Administrator\\Documents\\
    My FTPRush Downloads\\项目\\Photoes\\007.jpg");//背景图片
    JLabel label = new JLabel(background);//把背景图片显示在一个标签里面
    //把标签的大小位置设置为图片刚好填充整个面板
    label.setBounds(0,0,background.getIconWidth(),background.getIconHeight());
    //把内容碃础百飞知读版嫂保讥窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明
    imagePanel = (JPanel)this.getContentPane();
    imagePanel.setOpaque(false);
    //内容窗格默认的布局管理器为BorderLayout
    imagePanel.setLayout(new FlowLayout());
    imagePanel.add(new JButton("测试按钮"));
    this.getLayeredPane().setLayout(null);
    //把背景图片添加到分层窗格的最底层作为背景
    this.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE));
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setSize(background.getIconWidth(),background.getIconHeight());
    this.setVisible(true);
    }
    }
    实现效果:


     
  • 2016-07-10 21:47 龚崇权 客户经理

    Java在JFrame面板上显示背景文字的方法:
    主函数:
    public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
    public void run() {
    try {
    HAPPY frame = new HAPPY();
    //frame.setVisible(true); 这行代码,可加可不加,并不会影响最终结果,但是在构造函数中一定要添加;
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    });
    }
    构造函数(关键代码):
    JFrame frame=new JFrame("\设\置\背\景\图\片 ");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    ImageIcon img = new ImageIcon("src/images/1.jpg");//这是背景图片
    JLabel imgLabel = new JLabel(img);//将背景图放在标签里。

    frame.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));//注意这里是关键,将背景标签添加到jfram的 LayeredPane面板里。
    imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight());//设置背景标签的位置
    Container cp=frame.getContentPane();
    cp.setLayout(null); //这里选择绝对布局管理器,对于边界布局管理器,放入控件后,无法显示背景图片;因为将整个面板都填充满了;
    ((JPanel)cp).setOpaque(false); //这样就能显示出背景图片出来了。
    剩下的就是在面板中添加相关的控件,添加语句可以用:
    (1)frame.getContentPane().add(panel); (2)cp.add(panel)
    效果一样;

    另一种方法则是直接为面板设置背景图片,源代码如下:
    contentPane = new JPanel(){
    private static final long serialVersionUID=-1588458291133087637L;
    public void paint(Graphics g){
    ImageIcon icon=new ImageIcon("src/images/5.jpg");
    Image image=icon.getImage();
    g.drawImage(image, 0, 0, null);
    }
    };
    但在实验中发现,显示效果不如前一种方法,...... 
  • 2016-07-10 21:44 符耀精 客户经理

    //示例代码,下面的注释有说明背景图片
    import java.awt.Container;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;

    public class Fre {
    static JFrame frame = new JFrame();

    public static void main(String[] args) {
    // 窗体大小
    frame.setSize(200, 200);
    // 显示窗体
    frame.setVisible(true);
    ImageIcon img = new ImageIcon("1.jpg");// 这是背景图片
    JLabel imgLabel = new JLabel(img);// 将背景图放在标签里。

    frame.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));// 注意这里是关键,将背景标签添加到jfram的
    // LayeredPane面板里。
    imgLabel.setBounds(0, 0, frame.getWidth(), fr碃姬百肯知厩版询保墨ame.getHeight());// 设置背景标签的位置
    //imgLabel.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());// 设置背景标签的位置
    Container cp = frame.getContentPane();
    cp.setLayout(null); // 这里选择绝对布局管理器,对于边界布局管理器,放入控件后,无法显示背景图片;因为将整个面板都填充满了;
    ((JPanel) cp).setOpaque(false); // 这样就能显示出背景图片出来了
    }

    }
     
  • 2016-07-10 21:41 龚家贱 客户经理

    java swing中设置组件透明度的方法如下:
    package src;import java.awt.*;import javax.swing.ImageIcon;import javax.swing.JLabel;import javax.swing.JPanel;public class MyPanel extends JPanel{ private Image image = null; public MyPanel(Image image) { this.image弧骸岗缴瞢剂哥烯工楼 = image; } //固定背景图片,允许这个JPanel可以在图片上添加其他组件 protected void paintComponent(Graphics g) { g.drawImage(image, 0, 0, this.getWidth(), this.getHeight(), this); } }测试JFramepackage src;import java.awt.Image;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class Test extends JFrame{JPanel jpanel;JLabel jlabel;JButton jbutton;Image image=new ImageIcon("image/a.jpg").getImage();ImageIcon labIma=new ImageIcon("image/a.jpg");Test(){ this.setIconImage(image); this.setTitle("hello"); init(); this.add(jpanel);}public void init(){//本方法里面有三种显示图片的方法,两个实现了在图片上添加按钮的功能 /*第一种方法 通过JLabel简单的设置图片 jpanel=new JPanel(); jlabel=new JLabel(); jlabel.setIcon(labIma); jpanel.add(jlabel); *//*第二种方法 这是实现在JLabel添加图片同时在上面添加按钮功能,注意它里面的jpanel不用显示的添加到JFrame中,因此上面构造函数中的this.add(jpanel)要注释掉jpanel = (JPanel) this.getContentPane(); //从JFrame 里面创建一个JPanel jpanel.setOpaque(false); //JPanel 透明模式 jlabel = new JLabel(labIma); //创建个带背景图片的JLabel this.getLayeredPane().add...... 
  • 2016-07-10 21:35 辛培剐 客户经理

    在java swing中需要为容器添加自定义图片或者背景图片。提供两种简单的解决方案,一种利用JPanel,另一种利用JLabel,代码如下:
    1、JPanel(源代码)
    package oo; import java.awt.Graphics; import java.awt.Image; import java.io.File; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JPanel; public class Drawing { JFrame jframe = new JFrame(); public static JPanel GImage = null; public Drawing() { initFrame(); } // 初始化窗口 public void initFrame() { // 利用JPanel添加背景图片 GImage = new JPanel() { protected void paintComponent(Graphics g) { ImageIcon icon = new ImageIcon("image\\benbenla.jpg"); Image img = icon.getImage(); g.drawImage(img, 0, 0, icon.getIconWidth(), icon.getIconHeight(), icon.getImageObserver()); jframe.setSize(icon.getIconWidth(), icon.getIconHeight()); } }; jframe.setTitle("测试背景图片"); jframe.add(GImage); jframe.pack(); jframe.setVisible(true); jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { new Drawing(); } }2、JLabel源代码
    package swing.draw; import java.awt.Image; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; /** 利用JLabel来构建图片 */ public class Drawing2 { JLabel jlpic = new JLabel(); ...... 
  • 2016-07-10 21:32 边博洋 客户经理

    教你如何设置背景图片
    xml文件设置背景图片中:
    任意一个控件,button imageView 或layout,在其的xml属性设置中,添加

    [java] view plaincopy
    android:background="@drawable/bg"

    即可实现设置其背景图片为bg.
    其中bg.bnp图片存放在drawable目录下。
    drawable目录下存放大小图标共用的图片。drawable-hdpi中存放240 WVGA800 的模拟器或板子用的图片。drawable-mdpi存放对应的小图片

    [java] view plaincopy
    <ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/pic"/>

    同样,用src属性,也可设置imageView的图片为pic.png

    java代码中设置或更改一个控件的背景图片:

    [java] view plaincopy
    Resources resources = getContext().getResources();
    Drawable btnDrawable = resources.get单龚厕夹丿蝗搽伟敞连Drawable(R.drawable.layout_bg);
    layout.setBackgroundDrawable(btnDrawable);

    程序中,动态修改layout的背景图片,用setBackgroundDrawable()函数实现。设置其背景图片为 layout_bg.png

    修改imageView1的背景图片为imageView2的背景图片:
    imageView2.getDrawable()可获得图片2的背景。值为Drawable类型
    imageView1.setImageDrawable(drawable); 设置imageView1的背景图片

    即:

    [java] view plaincopy
    imageView1.setImageDrawable(imageView2.getDrawable());
    热心网友  
  • 2016-07-10 21:29 章要在 客户经理

    我也在郁闷这个问题,我用的是MouseListener接口,但是我不知道怎骸涪汾皇莴郝风酮袱捆么注册监听,图片注册监听应该怎么弄啊?

    对了,你那个应该可以将你的图片放入JButton然后用JButton注册监听,也是用MouseListener接口
     

相关百科精选

  • 保险价值 保险价值是指保险合同双方当事...

  • 友邦保险有限公司 友邦保险在中国大陆的发展始于1992年,并于同年在上海设立分公司,是当年第一家获许在中国大陆经营保险业务的外资保险公司。友邦保险在中国大陆的业务范围已经扩展到北京市、深圳市、广东省和江苏省。作为第一家将保