JPanel的使用
来源:互联网 发布:中国的gis数据交换中心 编辑:程序博客网 时间:2024/04/30 11:53
JPanel的使用:
类层次结构图:
java.lang.Object --java.awt.Component --java.awt.Container --javax.swing.JComponent --javax.swing.JPanel
Panel民是java中时常用到的容器之一,Panel除了可以让组件加入外,有效的利用Panel可以使版面管理更为容易。Swing的 JPanel支持double buffering的功能,使得JPanel在处理动画上更为流畅,较不会有画面闪烁的情况发生。下面为它的构造函 数:
JPanel构造函数:
JPanel():建立一个具有double buffering功能的JPanel,默认的版面管理是Flow Layout.
JPanel(boolean isDoubleBuffered):选择建立是否具有double buffering功能的JPanel,默认的版面管理是Flow Layout.
JPanel(LayoutManager layout):建立一个具有double buffering功能JPanel,可自定义版面管理器.
JPanel(LayoutManager layout,boolean isDoubleBuffered):选择建立是否具有double buffering功能的JPanel,并自定义版面管 理器.
下面这个例子我们用JPanel来排列5个JLabel对象,你将可以发现利用JPanel搭配版面管理,可以做出更复杂的排列效果。
JPanel1.java
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class JPanel1 { public JPanel1() { JFrame f = new JFrame("JPanelDemo"); Container contentPane = f.getContentPane(); contentPane.setLayout(new GridLayout(2,1)); JLabel[] label = new JLabel[5]; for(int i=0; i< label.length ; i++) { label[i] = new JLabel("Label "+(i+1),JLabel.CENTER); label[i].setBackground(Color.lightGray); label[i].setBorder(BorderFactory.createEtchedBorder()); label[i].setOpaque(true);//setOpaqueIture)方法的目的是让组件变成不透明,这样我们在JLabel上所设置的颜色 // 才能显示出来。 } JPanel panel1 = new JPanel(new GridLayout(1,1)); panel1.add(label[0]); JPanel panel2 = new JPanel(new GridLayout(1,2)); JPanel panel3 = new JPanel(new GridLayout(1,2)); panel3.add(label[1]); panel3.add(label[2]); JPanel panel4 = new JPanel(new GridLayout(2,1)); panel4.add(label[3]); panel4.add(label[4]); panel2.add(panel3); panel2.add(panel4); contentPane.add(panel1); contentPane.add(panel2); f.pack(); f.show(); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } public static void main(String[] arg) { new JPanel1(); }}
由上例可知,利用JPanel可以使版面的排列方式更生动,若没有JPanel的帮助,想直接由contentPane排列成如上例所示,便必须 借助复杂的GridBagLayout版面管理器了。
- JPanel的使用
- 关于JPanel的使用
- Jpanel类的使用
- 容器控件JPanel的使用
- Java学习笔记--JPanel的使用
- JScrollPane+JTree的使用+container 是JPanel
- jPanel子类无法使用.setBackground()函数的问题
- 复杂布局——面板(JPanel)组件的使用
- 具有背景的JPanel
- jpanel的一些事
- 图片的拖动(JPANEL)
- 设置JPanel的背景
- JPanel 的getGraphics
- 定制半透明的JPanel
- JPanel中添加一个新的JPanel,结果新的JPanel会自动占满父JPanel
- jpanel
- JPanel
- JPanel
- Apache环境中php连接mysql的设置问题
- 【技术类】如何做到ArcGIS中图像增强的收放自如
- apache 默认首页修改
- JInternalFrame的使用
- Linux的TUN/TAP编程
- JPanel的使用
- Android 使用HttpClient和第三方MiME文件上传类库,实现文件上传
- WPF下实现图片的放大缩小移动
- 如何查看oracle client是32位还是64位
- Linux shell脚本的建立与执行
- 虚拟网卡 TUN/TAP 驱动程序设计原理
- Android学习之Http使用Post方式进行数据提交
- java使用"+"拼装sql和hql引起的效率问题
- C语言宏定义中的井号(#)的用法