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();
    }
}

效果如下:

最新文章

  1. Android沉浸式通知栏设计
  2. 【Java EE 学习 46】【Hibernate学习第三天】【多对多关系映射】
  3. 自定义CollectionViewLayout
  4. Android获取系统时间方法的总结
  5. HQL的一些语句总结
  6. json跨域原理及解决方法
  7. 用tsung测试openfire 服务器性能
  8. Play on Words
  9. 一个人的旅行(用小技巧转化为dijkstra算法)
  10. 深入浅出Hadoop Mahout数据挖掘实战(算法分析、项目实战、中文分词技术)
  11. jquery-ui-bootstrap动态添加和删除标签页封装【效果更炫】
  12. ios 学习动画的套路 (一)
  13. Python中三种基本结构的语句
  14. 软工个人作业4——Alpha阶段个人总结
  15. LayUI左侧菜单无法保持选中状态
  16. SAS 创建新变量
  17. Windows下Codeblocks调试Cocos2d-x项目体验(一次失败的体验)
  18. 在 Django/Flask 开发服务器上使用 HTTPS
  19. docker从容器里面拷文件到宿主机或从宿主机拷文件到docker容器里面
  20. python web py安装与简单使用

热门文章

  1. CoreLocation
  2. SQL——存储过程实例 循环
  3. POJ3009 Curling
  4. JAVA中在Myeclipse里把表导入成相应的poco实体类
  5. iOS - OC iOS 开发体系
  6. iOS - AFNetworking 网络请求
  7. Nginx入门笔记之————配置文件结构
  8. springmvc企业级开发实战
  9. oracle dba 职责, 及个人需要掌握内容
  10. select实现输入模糊匹配与选择双重功能