JFrame背景

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

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

imgLabel.setBounds(0, 0,  img.getIconWidth(),  img.getIconHeight());

//将标签添加到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();
    }
}

效果如下:

时间: 2024-08-26 08:03:03

JFrame背景的相关文章

设置JFrame背景图片

这里我就放上改写的代码吧,不做多的解释,推荐一个好的博文 https://blog.csdn.net/jdsjlzx/article/details/16831815 1 public void ini_background() { 2 // 背景图片 3 ImageIcon background = new ImageIcon( 4 this.getClass().getResource("/img/登录背景.png")); 5 // 把背景图片显示在一个标签里面 6 JLabel

五,图形界面编程

五,图形界面编程 一,图形界面编程swt; 1,awt 1,图形类 Button 2,辅助类 1,工具类 2,字体类 3,颜色类 2,Swing 1,图形类 jButton 二,容器与组件 1,首层容器 Contoner 1,所有的中间容器和组件都放在首层容器里 2,常用的首层容器 JApplet-动画效果-过时 Jdiologo-弹出框 Jframe-常用的首层容器 Jwindow 3,先new jframe对象,在设置宽高 ,ste size(宽,高): 内宽高,先水平在垂直先宽后高,单位像

JAVASE学习笔记:第十章 SWing常用控件类(三)

11.设置JFrame背景图片 JPanel c= (JPanel)this.getContentPane(); //创建jpanel Toolkit t=Toolkit.getDefaultToolkit(); //背景图片,将panel不透明设置为false c.setOpaque(false); JLabel label = new JLabel(); URL usrc=this.getClass().getClassLoader().getResource("\\images\\bg.J

java JFrame 设置背景颜色无效的理解

广州疯狂软件教育Java培训,iOS培训分享 在开发Java应用程序时,通常情况下利用JFrame创建窗口.利用JFrame创建的窗口分别包含一个标题.最小化按钮.最大化按钮和关闭按钮 1.在你使用JFrame创建窗体时的情况: 在你直接调用setBackground(Color.red)这个方法后,你的确设置了JFrame的背景颜色,而你看到的却不是直接的JFrame,而是JFrame.getContentPane().而JFrame上的contentPane默认是Color.WHITE的,所

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

JFrame的层次结构: JFrame:窗体,也就是窗口的框架.默认为不可见.不透明的(可以使用isVisible和isOpaque来验证).创建窗口时,最后一步需要调用setVisible(true)就是将窗体设为可见. JRootPane:根窗格,也叫根面板.窗格是窗口的内容.JRootPane 作为JFrame的唯一的子容器.默认为可见.不透明的. JLayeredPane:分层窗格,又叫层面板.JLayeredPane 将该深度范围分成几个不同的层,为 JFC/Swing 容器添加了深度

JFrame与JButton添加背景

某些时候,我们会认为Swing的GUI实在是太难看了.我们可以通过修改背景,来达到一定的美化效果. 一.JFrame设置背景 在设置背景前,必须了解到JFrame分为4层,从下至上分别为RootPane.LayeredPane.ContentPane.GlassPane.其中GlassPane是默认透明的,ContentPane主要用来承载控件. 我们设置背景,可以选择设置在RootPane或LayeredPane,这样就不会影响到ContentPane. 以下以LayeredPane为例: 1

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

资料来自:http://blog.csdn.net/qq_32006373/article/details/49659129 http://yuncode.net/code/c_5196327caac3917 在做一个Java大作业,做了一个登录界面后觉得太单调,于是想说加个背景.先是直接弄了个ImageIcon,然后改成Image,再直接用网上的一个重写paint()的方法来设置背景,成功了,但是却发现component都被覆盖掉了.于是开始百度有关JFrame等容器的层次问题. 从视觉效果上

JFrame 实现全屏透明背景

JFrame f=new JFrame(); f.setUndecorated(true);        f.setBackground(new Color(0,0,0,0));        Toolkit kit = Toolkit.getDefaultToolkit();          Dimension screenSize = kit.getScreenSize();          f.setSize(screenSize);        f.setVisible(true

JFrame面板

1.可见性与透明性 可见性:当面板不可见时,则该面板中包含的组件会无法显示. 透明性:若该面板是可见且透明的,那么只是面板会透明(比如面板的背景色无法看到),面板上的组件仍会显示. 注:可见性通过setVisible(boolean)实现,透明性通过setOpaque(boolean)实现,其中true为可见不透明. 2.面板类型 JFrame有四层面板叠加组成,分别是RootPane根面板.LayeredPane层面板.ContentPane内容面板.GlassPane玻璃面板.RootPan