欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JFrame的面板结构和JPanel的使用

程序员文章站 2022-06-27 22:27:02
JFrame图解结构 有一窗口框架实例:JFrame win = new JFrame("窗口");在new JFrame()时,构建了JFrame实例对象,在实例中的Layered Pane层面版中,也默认构建了一个JPanel控件面板。 使用 win.getContentPane( ); 是获取 ......

JFrame的面板结构和JPanel的使用

jframe图解结构

有一窗口框架实例:jframe win = new jframe("窗口");
在new jframe()时,构建了jframe实例对象,在实例中的layered pane层面版中,也默认构建了一个jpanel控件面板。

使用 win.getcontentpane( ); 是获取jframe实例win中默认构建的 jpanel控件面板,获取到后可以往里布置 功能控件(如jbutton)。

写一个jpanel控件面板实例:jpanel panel = new jpanel( );

使用 win.setcontentpane(panel); 是把 win 中的默认 jpanel控件面板 替换为自定义的 jpanel控制面板 panel。

使用 win.add(panel); 则是在 win 中的默认 jpanel控件面板上叠加布置了--自定义的jpanel控件面板panel,(jpanel是可以嵌套的)。

【总结】
使用jframe窗体时:
1.可以通过jframe.getcontentpane( )获取 jframe窗体实例 默认构建的jpanel控件面板,然后往上布置功能控件。
2.可以通过jframe.setcontentpane(jpanel实例) 将 jframe窗体实例 默认的 jpanel控件面板 替换成 自定义的jpanel控件面板。
3.可以通过jframe.add(jpanel实例) 在 jframe窗体实例 默认的 jpanel控件面板之上 叠加布置上自定义的jpanel控件面板。

【常见问题解决】
1.使用jframe.setbackground(color.pink)后无效果:
此时是对窗体的背景颜色设置,而窗体之上还有一个默认构建的jpanel是不透明白色,所以看不到给jframe设置的颜色。
解决1:通过jframe.getcontentpane().setbackground(null);把jframe默认构建的jpanel的颜色设置为null,那么窗体的背景颜色就显示出来了。
解决2:通过jframe.getcontentpane().setopaque(false);把jframe默认构建的jpanel的不透明度设置为false纯透明,那么窗体的背景颜色就显示出来了。
解决3:直接通过jframe.getcontentpane().setbackground(xxx)将jframe默认jpanel设置颜色,功能控件布置到它上面就行了,窗体颜色不用设置。
解决4:自定义jpanel设置它的背景颜色,通过jframe.setcontentpane(jpanel实例)将自定义jpanel设置为jframe的默认jpanel。
解决5:自定义jpanel设置它的背景颜色,通过jframe.add(jpanel实例)将自定义jpanel叠加布置到jframe的默认jpanel上面。