Swing简介
Swing组件库是建立在awt之上的,Java推出的一套新的图形用户界面开发工具包。它利用了awt的下层组件,包括图形、字体、布局管理器和工具包等,也使用了awt的事件处理机制,但是基本上没有使用awt的基本组件。Swing提供了几十个组件,远多于awt,并且增加了windows环境下的所有控件,使得图形用户界面的设计更为方便。
JFrame窗口
JFrame是带标题的顶层窗口,是Frame的子类,它属于顶层容器类组件。
五种布局管理器
布局管理器的概念:组件在容器中的位置和大小是由布局管理器来决定的。所有的容器会使用一个布局管理器,通过布局管理器来自动进行组件的布局管理。
分类:边界布局管理器、流式布局管理器、网格布局管理器、卡片布局管理器、网格包布局管理器。(前三种布局管理器较为常用)
分类介绍:
边界布局管理器(BorderLayout):将容器划分为东南西北中5个区域来安排组件:North,South,East,West,Center。
注:1、不是5 个部分都必须添加组件。
2、中间部分的组件会自动调节大小。
3、是window、Frame、Dialog的默认布局管理器。
流式布局管理器(FlowLayout):按照组件的添加次序将组件从左到右的,从上到下的放入到容器中。当到达容器边界时,组件将自动放置在下一行。组件之间的默认间隔是5个像素。FlowLayout可以以
左对齐、居中对齐、右对齐的方式排列组件。
注:1、流式布局默认居中对齐。
2、组件的大小由布局管理器根据组件的最佳尺寸来决定。
3、当容器被缩放时,组件的位置可能变化,但是组件的大小不变。
网格布局管理器(GridLayout):将容器分成一个个的格子,按行依次排列组件,各组件的大小相同。
注:注:1、组件的相对位置不随容器的缩放而变化,但是组件的大小会改变
2、可以通过GridLayout(int rows,int cols,int hgap,int vgap)来指定网格的
行/列,水平间隙/垂直间隙。【hgap 垂直间隙,vgap 水平间隙】
卡片布局管理器(CardLayout):将界面看成一系列的卡片,在任何时候只有其中的一张卡片是可见的,这张卡片占据容器的整个区域。
JPanel面板容器
面板是一个通用非顶层容器,没有边框或者是其它可见的边界,不能移动、放大、缩小或者是关闭,它只能存在于其它的容器中。一个界面只可以有一个JFrame窗体组件,但可以有多个Jpanel面板组件,Jpanel上也可使用FlowLayout,BorderLayout,GirdLayout等各种布局管理器,这样可以组合使用达到较为复杂的布局效果。JPanel 是一般轻量级容器。
注:1、JPanel是JComponent的子类。
2、默认布局管理器是流式布局管理器。
swing中常用的组件
1、按钮。(JButton)
2、文本框(JTextField)
3、密码框(JPasswordField)
4、标签(JLabel)
5、复选框组件(JCheckBox)
6、单选框组件(JRadioButton)
注:同一组单选按钮必须先创建ButtonGroup,然后把单选框加入到ButtonGroup中,但是在加入Jpanel容器或者是JFrame容器时,是加单选框组件。
7、下拉框组件(JComboBox)
8、列表框组件(JList)
9、滚动窗格组件(JScrollPane)
10、拆分窗格(JSplitPane)属于容器类组件。
11、多行文本框组件(JTextArea)
12、菜单条组件(JMenuBar)
13、菜单组件(JMenu)
14、菜单项组件(JMenuItem)
15、弹出式菜单(JPopupMenu)
16、页签面板(JTabbedPane)
17、工具条组件(JToolBar)
18、表格(JTable)
19、树状视图(JTree)
20、对话框(JDialog)
21、消息框(JOptionPane)
22、文件对话框(JFileChooser)