如何在背景图上添加控件

时间:2024-05-18 12:45:30

 1.JFrame窗体的背景图片上添加控件

     

     一、JFrame的层次结构

  如何在背景图上添加控件

     JFrame是由JRootPane根面板组成的,而JRootPane是由GlassPaneJLayeredPane两个面板组成的,JLayeredPane是由ContentPane(放各种组件)JMenuBar(放菜单栏)两个面板组成的。

我们重点是关注JLayeredPaneContentpane,因为我们要在JLayeredPane面板上添加背景图片,在ContentPane面板上添加组件。

 

二、组件的Opaque透明属性

setOpaque(boolean)用来设置组件的透明属性,true为不透明,false为透明。

 

三、背景图片的添加

其实是创建一个和背景图片大小一样的JLabel标签,然后给标签添加图片,在把标签添加到相应的窗体或者面板上去。

 

     相关代码:

 如何在背景图上添加控件

       

 

 

2. JPanel的背景图片上添加控件

  

   方法一:

1.定义一个 ImageIcon对象,并指定图片。把这个ImageIcon放到一个JLabel中,再将这个JLabel放到要显示的JPanel中。

 

            2.JPaneladd函数参数除了有组件的引用,还有一个重载版本add(JComponent c, Object contraints),第二个参数可以传入一些用作其他用户想做的处理的对象,如排序或者一些别的附带信息。

默认可以传入的整数有-101,其中如果把背景图片addJPanel时传入-1,其他组件addJPanel时传入0,就可以达到想要的效果。经过测试,只有背景图片附带信息-1(可以省略),其他组件附带信息0(不能省略),可以达到添加背景图片的效果,其他组合都不行,

 

  方法二:重写要显示的 JPanel protected void paintComponent(Graphics g)函数,达到添加背景图片的效果,就能够添加控件而不会被遮住。

 如何在背景图上添加控件

 

 

 

 相关知识:

   

      如何实现窗体的最大化和最小化功能

   如何在背景图上添加控件




如何在背景图上添加控件