Ø 顶层容器:JFrame、JApplet、JDialog和JWindow
Ø 中间容器:JPanel、JScrollPane、JSplitPane、JToolBar
Ø 特殊容器:在用户界面上有特殊作用的中间容器,如:JInternalFrame、JRootPane、JLayeredPane和JDestopPane
Ø 基本组件:JButton、JComboBox、JList、JMenu、JSlider
Ø 不可编辑信息的显示组件:向用户显示不可编辑信息的组件,如:JLabel、JProgressBar、JToolTip等
Ø 可编辑信息的组件:JTable、JTextArea和JTextField
Ø 特殊对话框组件:JColorChooser和JFileChooser
布局管理器用来管理组件在容器中的布局
绝对布局管理器
除了布局管理器之外,也可以使用绝对布局。绝对布局就是硬性指定组件在容器中的位置和大小
getContentPane().setLayout(null); //JFrame窗体需要调用getContentPane()方法获取窗体容器,然后取消布局管理器(即使用绝对布局管理器)
jp3.setBounds(0,0, 500, 100);
如果窗体内组件使用setBounds(int x,int y,int width,int height),参数x,y代表这个组件在父容器中的位置,而width和height则代表组件的宽度与高度。
如果窗体使用setBounds(int x,int y,int width,int height),参数x,y代表窗体在整个屏幕上出现的位置。
所有的容器都有默认的布局管理器,如果没有为容器指定布局管理器,则使用默认的布局管理器
为容器指定布局管理器,通过调用setLayout(new XxxLayout),如:
c. setLayout(new XxxLayout)
1. FlowLayout,组件像水流一样向某方向移动,JPanel默认使用FlowLayout布局管理器(不限制组件大小,容器缩放组件大小不变,但是位置会变)
2. BorderLayout,将容器分为南、北、左、右、中五个部分,如可以利用BorderLayout.SOUTH来设置组件的位置
3. GridLayout,网格布局,构造方法如下:GrideLayout(int rows,int cols)、GrideLayout(int rows,int cols,int hgap,int vgap),当向该布局管理器的容器中添加组件时,默认从左到右,从上到下依次添加到每个网格中(组件的相对位置不随容器缩放而改变,但大小会改变,所有的组件大小相同)
4. CardLayout布局管理器,将加入容器的所有组件看成一叠卡片
5. GridBagLayout,功能强大,但是很复杂
6. BoxLayout,保留了GridBagLayout的很多优点,但是没那么复杂