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上面。
JFrame的面板结构和JPanel的使用的更多相关文章
- Java知多少(83)面板基础:JPanel和JScrollPane
面板有两种,一种是普通面板(JPanel),另一种是滚动面板(JScrollPane). JPanel 面板是一种通用容器,JPanel的作用是实现界面的层次结构,在它上面放入一些组件,也可以在上面绘 ...
- 【Java GUI】Java面板基础:JPanel
有两个面板,常见的面板(JPanel)和滚动面板(JScrollPane) Jpanel 面板是一种常见的容器,JPanel的作用是实现接口层次结构,面放入一些组件.也能够在上面绘画,将放有组件和有画 ...
- JFrame上添加、删除Jpanel后动态显示界面问题
JFrame中动态添加或者删除JPanel后总是不正确显示需要的界面问题: 1.删除panel后还是显示之前的界面,新删除的panel在界面上并没有被删除: 2.删除panel1后添加新的panel2 ...
- 面板 JPanel,滚动面板 JScrollPane,文本域JTextArea
容器中可以有多个JPanel面板,一个JPanel面板中可以有多个控件. 滚动面板 JScrollPane中只能有一个控件. public class Demo extends JFram ...
- JPanel设置图片
package com.gr.db; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class We ...
- java面板
import java.awt.Color; import java.awt.Container; import javax.swing.JFrame; import javax.swing.JLab ...
- JFrame编程
最基础的窗口 public test1() { setTitle("test1"); setSize(300,300); //设置窗口大小 setLocation(300,300) ...
- JFrame 文本打印
package tools; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import jav ...
- Java-Swing的JFrame的一些插件使用详解
JFrame介绍: 在 JFrame 对象中可以使用add方法添加 AWT 或者 Swing 组件. JFrame 有一个 Content Pane,窗口能显示的所有组件都是添加在这个 Content ...
随机推荐
- 031、Java中偶数偶数的判断方法
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- 026、MySQL取字符串左边,取字符串右边,取字符串中间,取文本开始位置
#取文本左边 ); #田 ); #田攀 ); #田攀5 #取文本右边 ); # ); # ); #攀52 #取文本中间 '); #田攀 '); #攀5 #从字符串s中获取s1的开始位置 不忘初心,如果 ...
- 洛谷题解P1047 校门外的树
题目描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0,1,2,…,L,都种有 ...
- log4j 功能说明
log4j 是一个非常强大的日志工具,应用于很多开源项目的.具体有以下几种功能: 定制不同输出的级别:ALL > TRACE > DEBUG > INFO > WARN > ...
- ActiveMQ的安装与配置详情
(1)ActiveMQ的简介 MQ: (message queue) ,消息队列,也就是用来处理消息的,(处理JMS的).主要用于大型企业内部或与企业之间的传递数据信息. ActiveMQ 是Apac ...
- 吴裕雄--天生自然java开发常用类库学习笔记:排序及重复元素说明
import java.util.Set ; import java.util.HashSet ; class Person{ private String name ; private int ag ...
- 自制spring中bean加载机制,仅做笔记自用
- maven在windows下的安装配置及手动引入oracle数据库jar包
一.maven的安装配置 注意:在进行如下配置之前,有个前提是你的java的jdk安装配置正确才行 1.首先,下载maven,网址http://maven.apache.org/download.cg ...
- 解决CSS背景模糊
.banner{ background:url(banner.jpg); -moz-background-size:100% 100%; background-size:100% 100%; }
- 云时代架构阅读笔记二——Java性能优化(二)
承接上文Java性能优化(一)https://www.cnblogs.com/guo-xu/p/11019267.html 4)尽量确定StringBuffer的容量 在说和这个标题相关之前,先说一下 ...