第十一周课程总结

第十一周课程总结

基本容器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布局管理器。其中,第一个参数为对齐方式,第二个参数为组件间以及组件与容器边之间的水平距离,第三个参数为组件之间以及组件与容器边之间的垂直间距。

这就是我的本周学习小结。

原文地址:https://www.cnblogs.com/neir/p/11812613.html