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. 业务对象(BO)设计

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  2. CUBRID学习笔记 27 数据类型4

    范围比较 数字和字符串比较 字符串被转为double SELECT i FROM t WHERE i <= all {'11','12'}; i ============= 1 2 3 4 字符 ...

  3. Codeforces Round #377 (Div. 2) D. Exams 二分

    D. Exams time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...

  4. Python基础学习笔记(九)常用数据类型转换函数

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-variable-types.html 3. http://www ...

  5. GATK3.2.2小结(转载)

    http://blog.csdn.net/skenoy/article/details/38346489 经过几天的摸索和网上资料的查询对GATK软件有点小心得,现总结如下: 1. fasta文件最好 ...

  6. SVN 的使用

    文件夹上的符号有什么意义?? 黄色感叹号(有冲突):--这是有冲突了,冲突就是说你对某个文件进行了修改,别人也对这个文件进行了修改,别人抢在你提交之前先提交了,这时你再提交就会被提示发生冲突,而不允许 ...

  7. (linux) 常用命令 干货

    内容提要 1. 第一难度, 重要 梯队 (grep, awk, sed, find, ) 2. 第二常用, 重要 梯队 (ps, ls, date, fuser, netstat, kill) 3. ...

  8. 让你分分钟读懂CPU架构及芯片厂商

    CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分 不同类型CPU的重要标示.目前市面上的CPU指令集分类主要分有两大阵营,一个是intel.AMD为首的复杂指令集CPU ...

  9. 设置TextView下划线并响应点击事件(SpannableString)

    下面是一个20行的完整Demo代码:基本原理是使用一个SpannableString并设置其ClickableSpan来响应点击事件. TextView useInfo = (TextView) fi ...

  10. jQuery.form.js jQuery ajax异步提交form

    jQuery.form.js是一个form插件,支持ajax表单提交和ajax文件上传. 官网下载地址:http://plugins.jquery.com/form/ API ajaxForm 增加所 ...