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上面。

JFrame的面板结构和JPanel的使用的更多相关文章

  1. Java知多少(83)面板基础:JPanel和JScrollPane

    面板有两种,一种是普通面板(JPanel),另一种是滚动面板(JScrollPane). JPanel 面板是一种通用容器,JPanel的作用是实现界面的层次结构,在它上面放入一些组件,也可以在上面绘 ...

  2. 【Java GUI】Java面板基础:JPanel

    有两个面板,常见的面板(JPanel)和滚动面板(JScrollPane) Jpanel 面板是一种常见的容器,JPanel的作用是实现接口层次结构,面放入一些组件.也能够在上面绘画,将放有组件和有画 ...

  3. JFrame上添加、删除Jpanel后动态显示界面问题

    JFrame中动态添加或者删除JPanel后总是不正确显示需要的界面问题: 1.删除panel后还是显示之前的界面,新删除的panel在界面上并没有被删除: 2.删除panel1后添加新的panel2 ...

  4. 面板 JPanel,滚动面板 JScrollPane,文本域JTextArea

    容器中可以有多个JPanel面板,一个JPanel面板中可以有多个控件. 滚动面板 JScrollPane中只能有一个控件.       public class Demo extends JFram ...

  5. JPanel设置图片

    package com.gr.db; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class We ...

  6. java面板

    import java.awt.Color; import java.awt.Container; import javax.swing.JFrame; import javax.swing.JLab ...

  7. JFrame编程

    最基础的窗口 public test1() { setTitle("test1"); setSize(300,300); //设置窗口大小 setLocation(300,300) ...

  8. JFrame 文本打印

    package tools; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import jav ...

  9. Java-Swing的JFrame的一些插件使用详解

    JFrame介绍: 在 JFrame 对象中可以使用add方法添加 AWT 或者 Swing 组件. JFrame 有一个 Content Pane,窗口能显示的所有组件都是添加在这个 Content ...

随机推荐

  1. Windows下使用Tomcat

    tomcat简介 Tomcat是一个开源.免费.轻量级的web服务器,只支持部分JavaEE规范(Servlet.JSP),适合部署中小型.并发访问量不大的web项目,是部署中小型Java Web项目 ...

  2. Python中pandas透视表pivot_table功能详解(非常简单易懂)

    一文看懂pandas的透视表pivot_table 一.概述 1.1 什么是透视表? 透视表是一种可以对数据动态排布并且分类汇总的表格格式.或许大多数人都在Excel使用过数据透视表,也体会到它的强大 ...

  3. IDEA maven 项目报警告解决(自己的maven配置记录)

    IDEA maven 项目报警告解决 应该是JDK版本太低 虽然你装的高但是默认使用maven 默认的 这里要配一下JDK版本 理解不深入只为 自己记录使用 1 配置 仓库为阿里云   配置本地储存j ...

  4. servlet3.0的文件上传代码配置怎么写

    之前学习过xml配置servlet3.0的文件上传,但是变成code方式一直不知道怎么弄,相比较起来apache的文件上传配置和xml倒是没什么太大区别. 直接上代码:无需依赖,只要一个方法就好了cu ...

  5. golang开启随机端口并获取端口

    listener, err := net.Listen("tcp", ":0") if err != nil { panic(err) } fmt.Printl ...

  6. Express - 采用bcryptjs进行密码加密

    1.安装bcryptjs模块 npm install bcryptjs --save 2.在需要加密的模块中引入bcryptjs库    require('bcryptjs');   实战 : /** ...

  7. JS的数据类型、常量、变量、以及基本对象的知识总结

    第一部分.JS的常见数据类型,特别要注意的是JS中大小写要求很严格,一定要注意字段大小写. 1.字符串(String) 举例: var cellname = "Bill Gate" ...

  8. 了解C#

    了解C C#能编写那些程序 Windows桌面应用程序 桌面应用有自己独立的进程与操作系统进行消息通讯,操作系统对事件进行检测,传递给桌面应用进程,桌面应用进程对这些消息进行解释,处理后,把处理结果u ...

  9. Python MySQL 创建数据库

    章节 Python MySQL 入门 Python MySQL 创建数据库 Python MySQL 创建表 Python MySQL 插入表 Python MySQL Select Python M ...

  10. css 径向渐变

    .example { width: 150px; height: 80px; background: -webkit-radial-gradient(red, green, blue); /* Saf ...