第十一周课程总结
第十一周课程总结
基本容器JFrame.
如果要使用Swing创建一个窗口,则直接使用JFrame即可。
创建一个新窗口
package java1.awt.test;
import javax.swing.JFrame ;
import java.awt.Color ;
public class JFrameDemo01{
public static void main(String args[]){
JFrame f = new JFrame("第一个Swing窗体") ;
f.setSize(400,200) ; // 设置组件的大小:宽度400,高度200
f.setBackground(Color.BLUE) ; // 将背景设置成蓝色
f.setLocation(500,100) ; // 设置组件的在屏幕中的显示位置:距离屏幕左边500,距离屏幕上边100
f.setVisible(true) ; // 让组件可见
}
};
有关JFrame的使用要注意的就是一方面是他自带容器的利用,这个容器无需添加,另外一个方面就是常见的配置流程:
在创建对象的时候传入字符串,添加控件,设置大小以及Location,设置窗口的关闭方式,最后通过调用JFram.setVisible(ture)
实现Frame的显示。
1、用java.awt.Color类来设置窗口的背景颜色。
2、用Dimension类来设置窗口的大小。
3、用Point类来设置窗口显示的位置。
JFrame类、Dimension类、Point类的常用操作方式和方法在教材上都有我就不一一总结了。
问:为什么在实例化Frame对象是不用异常处理?
Frame类的构造方法上使用了throws关键字抛出异常,为什么在此时的程序中却没有使用try…catch语句来进行异常处理呢。
答:
Java中只要是RuntimeException类型的异常,可以不用try…catch处理。这里HeadlessException是RuntimeException类型的,所以在上面的两个实例中不需要进行异常处理。
标签组件JLabel。
JLabel组件表示的是一个标签,本身是用于显示信息的,一般情况下是不能直接更改器显示内容的。创建完的Label对象可以通过Container类中的add()方法,加入到容器中。
在Swing中显示文本或提示信息的方法是使用标题,它支持文本字符串和图标。在应用程序的用户界面中,一个简短的文本标签可以使用户知道这些组件的目的,所以标签在Swing中是比较常用的组件。
标签由JLabel类定义,它的父类为JComponent类。
JLabel组件显示的是静态文本或者图片,在通常情况下是不能编辑的,只起到提示的作用。观察QQ登录界面输入框左侧的头像,他就可以用JLabel组件实现。
JLabel组件中主要的构造方法如下:
(1)JLabel():创建空的标签。
(2)JLabel(String):创建一个带初始字符串的标签。
(3)JLabel(Icon):创建一个带有指定图像的标签。
更改JLabel的文字样式用Font类。其常用操作方法在教课书上有总结和详细介绍,在此就不一一叙述了。
在JLabel中设置图片
将一个图片设置到JLabel中也是可以的,直接使用Icon接口以及ImageIcon子类即可。
按钮
几乎所有的交互式程序中都会有按钮,它是一种交互能力强且交互方便的控件,这个组件提供了“按下并动作”的基本用户界面。
构造方法如下:
(1):JButton():建立一个没有标示字符串的新按钮类对象。
(2):JButton(String label):建立一个标示字符串为label的新按钮类对象。
四.布局管理器
在Swing中,每个组件在容器中都有一个具体位置和大小,而在容器中摆放各种组件时很难判断其具体位置和大小。布局管理器提供了Swing组件安排、展示在容器中的方法及基本的布局功能。
使用布局管理器较程序员直接在容器中控制Swing组件的位置和大小方便得多,可以有效地处理整个窗体的布局。Swing提供的常用布局管理器包括流布局管理器、边界布局管理器和网格布局管理器。
1.BorderLayout 。
将版面划分成东、西、南、北、中五个区域,将添加的组件按指定位置放置。
BorderLayout.EAST
BorderLayout.WEST
BorderLayout.SOUTH
BorderLayout.NORTH
BorderLayout.CENTER
构造函数:
BorderLayout()
建立组件间无间距的BorderLayout
BorderLayout(int hgap,int vgap)
建立组件间水平间距为hgap,垂直间距为vgap的BorderLayout
2.FlowLayout。
组件按从左到右而后从上到下的顺序依次排列,一行不能放完则折到下一行。
构造函数:
FlowLayout()
建立一个默认为居中对齐,组件彼此有5单位的水平与垂直间距的FlowLayout 。
FlowLayout(int align)
建立一个可设置排列方式且组件彼此有5单位的水平与垂直间距的FlowLayout。
FlowLayout(int align,int hgap,int vgap)
建立一个可设置排列方式与组件间距的FlowLayout 。
3.GridLayout
java.lang.Object
–java.awt.GridLayout
矩形网格形式对容器的组件进行布置
构造函数:
GridLayout()
建立一个默认为一行一列的GridLayout。
GridLayout(int rows,int cols)
建立一个指定行(rows)和列(cols)的GridLayout。
GridLayout(int rows,int cols,int hgap,int vgap)
建立一个指定行(rows)和列(cols),且组件间水平间距为hgap、垂直间距为vgap的GridLayout。
4.GridBagLayout
java.lang.Object
–java.awt.GridBagLayout
GridBagLayout以表格形式布置容器内的组件,将每个组件放置在每个单元格内,而一个单元格可以跨越多个单元格合并成一个单元格,即多个单元格可以组合成一个单元格,从而实现组件的自由布局。
构造函数:
GridBagLayout()
建立一个默认的GridBagLayout
每一个单元格都有各自的属性,而这些属性由GridBagConstrainsts类的成员变量来定义,且GridBagConstriaints中的所有成员变量都是public的。
5.CardLayout
java.lang.Object
–java.awt.CardLayout
以层叠的方式布置组件,如同很多张卡片叠在一起,从而只能看到最上面的那一张卡片。
构造函数:
CardLayout()
建立一个无间距的CardLayout
CardLayout(int hgap,int vgap)
建立一个水平间距为hgap、垂直间距为vgap的CardLayout
绝对布局
在Swing中,除了使用布局管理器之外还可以使用绝对布局。绝对布局,就是硬性指定组件在容器中的位置和大小,可以使用绝对坐标的方式来指定组件的位置。
(1)使用Container.setLayout(null)方法取消布局管理器
(2) 使用Component.setBounds()方法设置每个组件的大小与位置。
流布局管理器
流布局管理器是最基本的布局管理器,在整个容器中的布局正如其名,像“流”一样从左到右摆放组件,知道占据了这一行的所有空间,然后再向下移动一行。默认情况下,组件在每一行都是居中排列的,但是通过设置也可以更改组件在每一行上的排列位置。
FlowLayout布局管理器是一种最简单的布局管理方法,是JPanel的默认布局。它以流式的方式,自左向右,自上而下地放置容器中的组件,即组件按每行先后自左向右放置,一行放不下时换行。FlowLayout的默认对齐方式为居中对齐,也可以手工设置为左对齐或右对齐。
FlowLayout中常用的构造方法:
(1)FlowLayout():创建默认的FlowLayout布局管理器。
(2)FlowLayout(int):以指定的对齐方式创建FlowLayout布局管理器。其中参数:
FlowLayout.LEFT(左对齐)、FlowLayout.RIGHT(右对齐)、FlowLayout.CENTER(居中对齐)。
(3)FlowLayout(int,int,int);以指定的对齐方式及间距创建FlowLayout布局管理器。其中,第一个参数为对齐方式,第二个参数为组件间以及组件与容器边之间的水平距离,第三个参数为组件之间以及组件与容器边之间的垂直间距。
这就是我的本周学习小结。