您的位置:首页 > 其它

中间容器

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);

    }

   }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: