JAVA 常用容器

常用容器

      JComponent是Container的子类,因此JComponent子类创建的组件也都是容器,但我们很少将JButton、JTextFied. JCheckBox等组件当容器来使用。JComponent专门提供了一些经常用来添加组件的容器。相对于JFrame底层容器,本节提到的容器被习惯地称为中间容器,中间容器必须被添加到底层容器中才能发挥作用。

1、JPanel 面板

      经常使用JPanel创建一个面板,再向这个面板添加组件,然后把这个面板添加到其他容器中。JPanel 面板的默认布局是FlowLayout布局。

2、JTabbedPane选项卡窗格

      可以使用JTabbedPane容器作为中间容器。当用户向JTabbedPane容器添加一个组件时,JTabbedPane容器就会自动为该组件指定一个对应的选项卡,即让个选项卡对应一个组件。各个选项卡对应的组件层叠式放入JTabbedPane容器,当用户单击选项卡时,JTabbedPane容希器将显示该选项卡对应的组件。选项卡默认在JTabbedPane容器的顶部,从左向右依次排列。JTabbedPane容器可以使用

      add(String text, Component c);

方法将组件c添加到JTabbedPane容器中,并指定和组件c对应的选项卡的文本提示是text。

可以使用构造方法

      public JTabbedPane (int tabPlacement)

      创建JTabbedPane容器,选项卡的位置由参数tabPlacement 指定,该参数的有效值为JTabbedPane.TOP、JTtabbedPane BOTTOM、JTabbedPane.LEFT 和JTabbedPane.RIGHT.

3、滚动窗格JScrollPane

      滚动窗格只可以添加一个组件,可以把-个组件放到一个滚动窗格中,然后通过滚动条来观看该组件。JTextArea 不自带滚动条,因此就需要把文本区放到一个滚动窗格中。例如:

      JScrollPane scroll=new JScrollPane (new JTextArea());

4、拆分窗格JSplitPane

      顾名思义,拆分窗格就是被分成两部分的容器。拆分窗格有两种类型:水平拆分和垂直拆分。水平拆分窗格用一条拆分线把窗格分成左右两部分,左面放一个组件,右面放一个组件,拆分线可以水平移动。垂直拆分窗格用条拆分线把窗格分成上下两部分,上面放一个组件,下面放一个组件,拆分线可以垂直移动。

JSplitPane的两个常用的构造方法如下:

      JSplitPane(int a, Component b, Component c)

      参数a取JSplitPane的静态常量HORIZONTAL_SPLIT或VERTICAL_SPLIT,以决定是水平还是垂直拆分。后两个参数决定要放置的组件。

      JSplitPane (inta,boolean b,Component c, Component d)

      参数a取JpliPane的静态常量HORIZONTAL_SPLIT或VERTICAL_SPLIT,以决定是水平还是垂直拆分,参数b决定当拆分线移动时,组件是否连续变化(true是连续)。

5、JLayeredPane分层窗格

      如果添加到容器中的组件经常需要处理重叠问题,就可以考虑将组件添加到分层窗格。分层窗格分成5个层,分层窗格使用

      add (Jcomponent com, int layer);

    添加组件com,并指定com所在的层,其中参数layer的取值为JLayeredPane类中的类常量:DEFAULT_LAYER、PALETTE_LAYER、MODAL_LAYER、POPUP_LAYER、DRAG_LAYER。

      DEFAULT_LAYER层是最底层,添加到DEFAULT_LAYER层的组件如果和其他层的组件发生重叠时,将被其他组件遮挡。DRAG_ LAYER层是最上面的层,如果分层窗格中添加了许多组件,当用户用鼠标移动一组件时,可以把该组件放到DRAG_LAYER层,这样,用户在移动组件的过程中,该组件就不会被其他组件遮挡。添加到同层上的组件,如果发生重叠,后添加的会遮挡先添加的组件。分层窗格调用public void setLayer(Component c,int lay)可以重新设置组件c所在的层,调用public int getLayer(Component C)可以获取组件c所在的层数。

猜你喜欢

转载自blog.csdn.net/abc1498880402/article/details/80737135
今日推荐