中间容器

来源:互联网 发布:淘宝wap流量权重高吗 编辑:程序博客网 时间:2024/04/28 10:11
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);
    }
   }


0 0
原创粉丝点击