中间容器
2016-06-15 18:24
288 查看
10.4 中间容器
用来添加组件的轻容器,称为中间容器。
JPanel 面板
●JPanel类用来创建一个面板对象,可以向这个面板添加组件(直接使用add方法)。
●使用时需要把这个面板添加到底层容器或其他中间容器中。
●JPanel面板的默认布局是FlowLayout布局。
●构造方法
◆JPanel():构造一个面板容器对象
JScrollPane滚动窗格
●把一个组件放到一个滚动窗格中,然后通过滚动条来观察这个组件。
●例如,JTextArea不自带滚动条,可把文本区放到一个滚动窗格中。
●构造方法
◆JScrollPane(component c):构造一个滚动窗格。
JSplitPane拆分窗格
●被分成两部分的容器,拆分窗格有两种类型:
◆水平拆分:用一条拆分线把容器分成左右两部分,左面放一个组件,右面放一个组件,拆分线可以水平移动。
◆垂直拆分:用一条拆分线分成上下两部分,上面放一个组件,下面放一个组件,拆分线可以垂直移动。
●构造方法
◆JSplitPane(int a, Component b ,Component c): 构造一个拆分窗格
setDividerLocation(double position):拆分窗格设置拆分线的位置。
JLayeredPane分层窗格
●如果添加到容器中的组件经常需要处理重叠问题,就可以将组件添加到JLayeredPane容器。
●常用方法:
◆add(Jcomponent com, int layer);JLayeredPane将容器分成5个层,容器使用该方法添加组件com,并指定com所在的层。
◆layer取值:
★DEFAULT_LAYER:最底层
★PALETTE_LAYER
★MODAL_LAYER
★POPUP_LAYER
★DRAG_LAYER:最上面的层
◆public void setLayer(Component c,int layer):重新设置组件c所在的层
◆public int getLayer(Component c):获取组件c所在的层数。
●例:在JLayeredPane容器中添加5个组件,分别位于不同的层上。(效果如图10.8所示)
import javax.swing.*;
import java.awt.*;
class Example
{
public static void main(String args[])
{
JFrame win=new JFrame("窗体");
win.setBounds(100,100,300,300);
win.setVisible(true);
JButton b1=new JButton("我在DEFAULT_LAYER"),
b2=new JButton("我在PALETTE_LAYER"),
b3 =new JButton("我在MODAL_LAYER"),
b4 =new JButton("我在POPUP_LAYER"),
b5=new JButton("我在DRAG_LAYER");
Container contenetPane=win.getContentPane();
JLayeredPane pane=new JLayeredPane();
pane.setLayout(null);
pane.add(b5,JLayeredPane.DRAG_LAYER);
pane.add(b4,JLayeredPane.POPUP_LAYER);
pane.add(b3,JLayeredPane.MODAL_LAYER);
pane.add(b2,JLayeredPane.PALETTE_LAYER);
pane.add(b1,JLayeredPane.DEFAULT_LAYER);
b5.setBounds(50,50,200,100);
b4.setBounds(40,40,200,100);
b3.setBounds(30,30,200,100);
b2.setBounds(20,20,200,100);
b1.setBounds(10,10,200,100);
b1.setBackground(Color.red);
b2.setBackground(Color.pink);
b3.setBackground(Color.green);
b4.setBackground(Color.orange);
b5.setBackground(Color.yellow);
contenetPane.add(pane,BorderLayout.CENTER);
contenetPane.validate();
win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
用来添加组件的轻容器,称为中间容器。
JPanel 面板
●JPanel类用来创建一个面板对象,可以向这个面板添加组件(直接使用add方法)。
●使用时需要把这个面板添加到底层容器或其他中间容器中。
●JPanel面板的默认布局是FlowLayout布局。
●构造方法
◆JPanel():构造一个面板容器对象
JScrollPane滚动窗格
●把一个组件放到一个滚动窗格中,然后通过滚动条来观察这个组件。
●例如,JTextArea不自带滚动条,可把文本区放到一个滚动窗格中。
●构造方法
◆JScrollPane(component c):构造一个滚动窗格。
JSplitPane拆分窗格
●被分成两部分的容器,拆分窗格有两种类型:
◆水平拆分:用一条拆分线把容器分成左右两部分,左面放一个组件,右面放一个组件,拆分线可以水平移动。
◆垂直拆分:用一条拆分线分成上下两部分,上面放一个组件,下面放一个组件,拆分线可以垂直移动。
●构造方法
◆JSplitPane(int a, Component b ,Component c): 构造一个拆分窗格
setDividerLocation(double position):拆分窗格设置拆分线的位置。
JLayeredPane分层窗格
●如果添加到容器中的组件经常需要处理重叠问题,就可以将组件添加到JLayeredPane容器。
●常用方法:
◆add(Jcomponent com, int layer);JLayeredPane将容器分成5个层,容器使用该方法添加组件com,并指定com所在的层。
◆layer取值:
★DEFAULT_LAYER:最底层
★PALETTE_LAYER
★MODAL_LAYER
★POPUP_LAYER
★DRAG_LAYER:最上面的层
◆public void setLayer(Component c,int layer):重新设置组件c所在的层
◆public int getLayer(Component c):获取组件c所在的层数。
●例:在JLayeredPane容器中添加5个组件,分别位于不同的层上。(效果如图10.8所示)
import javax.swing.*;
import java.awt.*;
class Example
{
public static void main(String args[])
{
JFrame win=new JFrame("窗体");
win.setBounds(100,100,300,300);
win.setVisible(true);
JButton b1=new JButton("我在DEFAULT_LAYER"),
b2=new JButton("我在PALETTE_LAYER"),
b3 =new JButton("我在MODAL_LAYER"),
b4 =new JButton("我在POPUP_LAYER"),
b5=new JButton("我在DRAG_LAYER");
Container contenetPane=win.getContentPane();
JLayeredPane pane=new JLayeredPane();
pane.setLayout(null);
pane.add(b5,JLayeredPane.DRAG_LAYER);
pane.add(b4,JLayeredPane.POPUP_LAYER);
pane.add(b3,JLayeredPane.MODAL_LAYER);
pane.add(b2,JLayeredPane.PALETTE_LAYER);
pane.add(b1,JLayeredPane.DEFAULT_LAYER);
b5.setBounds(50,50,200,100);
b4.setBounds(40,40,200,100);
b3.setBounds(30,30,200,100);
b2.setBounds(20,20,200,100);
b1.setBounds(10,10,200,100);
b1.setBackground(Color.red);
b2.setBackground(Color.pink);
b3.setBackground(Color.green);
b4.setBackground(Color.orange);
b5.setBackground(Color.yellow);
contenetPane.add(pane,BorderLayout.CENTER);
contenetPane.validate();
win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
相关文章推荐
- 直流电机调速作业
- Java多线程21:多线程下的其他组件之CyclicBarrier、Callable、Future和FutureTask
- Java Thread 多线程 介绍
- centos7 rabbitMq 安装教程
- C++程序设计语言练习7.11 标准参数宏的使用
- HandlerThread 是什么?
- 圣杯布局&双飞翼布局认识
- Android 获取系统时间的三种方式
- adb tcp 调试
- Java多线程20:多线程下的其他组件之CountDownLatch、Semaphore、Exchanger
- android自定义进度条
- B. Bear and Finding Criminals
- 依然排序
- Python+Django+Bootstrap 框架环境搭建
- Java多线程19:定时器Timer
- android image不显示
- Android 获取联系人电话号码
- 使用shell区分Android软硬重启问题
- iOS开发常用国外网站清单
- Mac开机启动登录之前启动VmWare 解决方案