1.引言

在了解了JFrame面板的相关知识后,我们可以选择在RootPane根面板或LayeredPane面板中设置背景图案。

2.方法

对于大小固定的窗口背景设置如下:

//导入图案

ImageIcon img = new ImageIcon("image url");

// 图片缩放为窗口大小

Image image = img.getImage().getScaledInstance(frame.getWidth(), frame.getHeight(), Image.SCALE_FAST);

//将缩放好的图片实例化

ImageIcon newimg = new ImageIcon(image);

//将图案放入标签(不能直接将image放入标签)

JLabel imgLabel = new JLabel();

imgLabel.setIcon(newimg);

//设置标签位置和大小(覆盖面板)

imgLabel.setBounds(0, 0,  frame.getWidth(), frame.getHeight());

//将标签添加到Layered面板或RootPane面板( LayeredPane也有若干层,这里放在最底层)

frame.getLayeredPane().add( imgLabel, new Integer(Integer.MIN_VALUE));

//将ContentPane设置为透明

JPanel content=(JPanel) frame.getContentPane();

content.setOpaque(false);

3.实例

import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class SetBack1 {
    JFrame frame = new JFrame("picture test");
    JLabel label=new JLabel();  
    public SetBack1(){
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(500, 400);    
        //导入图片
        ImageIcon img = new ImageIcon("D:\\7.jpg");
        // 图片缩放为适合Frame大小
        Image image = img.getImage().getScaledInstance(frame.getWidth(), frame.getHeight(), Image.SCALE_FAST);
        //将缩放好的图片实例化
        ImageIcon newimg = new ImageIcon(image);
        //在标签中添加图片
        label.setIcon(newimg);
        //设置标签大小为全屏
        label.setBounds(0, 0, frame.getWidth(), frame.getHeight());        
        //LayeredPane也是分层的,这里将JLabel放置在了LayeredPane最底层
        frame.getLayeredPane().add( label, new Integer(Integer.MIN_VALUE));
        //将ContentPane透明化
        JPanel cp= (JPanel)  frame.getContentPane();            
        cp.setOpaque(false);
        frame.setVisible(true);
    }   
    public static void main(String[] args) {
        new SetBack1();
    }
}

效果如下:

JFrame背景的更多相关文章

  1. 设置JFrame背景图片

    这里我就放上改写的代码吧,不做多的解释,推荐一个好的博文 https://blog.csdn.net/jdsjlzx/article/details/16831815 public void ini_ ...

  2. Swing编程---添加背景图片的方法

    总结:看下我的运行图片.这个图片很重要.很能说明问题.它的frame就是一个小图片.就是背景.么手贱把它放大. 在微软的操作系统上,你放多大,窗口就有多大,你看到背景就成了小图片,就会误以为不是背景. ...

  3. Swing编程把图片放入frame里。先不作为背景图片

    总结: 总之遵循一条,所有的组件都不是直接放入frame里的.还要label的重要性,panel.面板类 虽然我还是不会做,但总算出了个图片出来~~~~~~~~~~~~~ package com.kk ...

  4. swing实现QQ登录界面1.0( 实现了同一张图片只加载一次)、(以及实现简单的布局面板添加背景图片控件的标签控件和添加一个关闭按钮控件)

    swing实现QQ登录界面1.0( 实现了同一张图片只加载一次).(以及实现简单的布局面板添加背景图片控件的标签控件和添加一个关闭按钮控件) 代码思路分析: 1.(同一张图片仅仅需要加载一次就够了,下 ...

  5. JPanel设置图片

    package com.gr.db; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class We ...

  6. Java入门:使用Java API

    什么是Java类库 在编写程序的时候,通常有很多功能是通用的,或者是很基础的,可以用这些功能来组成更发杂的功能代码.比如文件操作,不同程序对文件的操作基本都是一样的,打开文件,关闭文件,读取文件里面的 ...

  7. 用Java开发局域网内文件传输软件遇到的一些问题

    项目地址:https://github.com/b84955189/FileTransfer 由于巨懒的我不太喜欢使用U盘操作文件,特此开发一个简易的文件传输程序. 目前仅限局域网内传输,后期会尝试写 ...

  8. JFrame的层次结构以及背景颜色设置问题

    JFrame的层次结构: JFrame:窗体,也就是窗口的框架.默认为不可见.不透明的(可以使用isVisible和isOpaque来验证).创建窗口时,最后一步需要调用setVisible(true ...

  9. 关于Swing中JFrame等顶级容器的层次还有设置背景的方式

    资料来自:http://blog.csdn.net/qq_32006373/article/details/49659129 http://yuncode.net/code/c_5196327caac ...

随机推荐

  1. Javascript获取地址栏参数值

    采用正则表达式获取地址栏参数: function GetQueryString(name) { var reg = new RegExp("(^|&)"+ name +&q ...

  2. zoj 1199 几何公式推导

    链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=199 Point of Intersection Time Limit:  ...

  3. Thinkphp 3.2 添加 验证码 如何添加。

    1,在home模块indexController.class.php中,加入以下代码 <?php namespace Home\Controller; use Think\Controller; ...

  4. jQuery调用AJAX异步详解[转]

    AJAX 全称 Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).它并非一种新的技术,而是以下几种原有技术的结合体. 1)   使用CSS和X ...

  5. 团队作业Week5之团队贡献分的分配

    一.团队贡献分的分配规则 首先,我们团队共有5个人,平均每个人50分,所以我们团队的总分为5*50=250,我们先把50分分成以下几份: 序号 贡献类型 权重 分数 1 代码贡献 40% 20 * 5 ...

  6. win10系统更新补丁时进度条一直卡在0%不动的解决方案

    为了能够让win10系统更加安全稳定,很多用户都会时不时为自己的电脑安装补丁.不过,部分用户在为win10系统更新补丁时,却会遇到进度条一直卡在0%不动的问题.这该怎么办呢?下面,小编就告诉大家解决该 ...

  7. MIRO发票校验BAPI_INCOMINGINVOICE_CREATE (2013-01-23 10:01:29)

    form frm_invoice_create2 .  data: str type string.  data: ls_headerdata       like bapi_incinv_creat ...

  8. eclipse 技巧

    1. eclipse中xml中提示需有xsd文档 如在线eclipse将自动网络获取.xsd 否则 手动本地添加(在xml catalog参数设置选项) 2.当明确实现功能时,可将已有方法抽取成接口, ...

  9. ios 开发之 Xcode6 No valid signing identities (i.e. certificate and private key pair) matching...

    之前的项目用证书真机测试过,我想再无证书Build,出现下面的报错提示! 下面的team我无法改成None!一点击None选的还是Unhonw name(JPGE28K3W9)这个是报错的关键 最后由 ...

  10. 青云的机房组网方案(简单+普通+困难)(虚树+树形DP+容斥)

    题目链接 1.对于简单的版本n<=500, ai<=50 直接暴力枚举两个点x,y,dfs求x与y的距离. 2.对于普通难度n<=10000,ai<=500 普通难度解法挺多 ...