九宫格问题
代码及实验结果截图
学习总结
AMT
AWT(Abstract Window Toolkit),中文译为抽象窗口工具包,该包提供了一套与本地图形界面进行交互的接口,是Java提供的用来建立和设置Java的图形用户界面的基本工具。
抽象窗口工具包 (Abstract Windowing Toolkit) (AWT)是Java的平台独立的窗口系统。
AMT包中提供的所有工具类主要分为以下三种:
1、组件:Component
所有的组件类都是从Component和MenuComponent扩展而来,这些类会继承这两个类的公共操作,继承关系为下图:
2、容器:Container
所有的AMT组件都应该放到容器中,并可以设置其位置,大小等属性,所有的容器都是Component的子类。
其中包含Window(Frame、Dialog)、Panel、Scroll Pane几种容器!!
容器(Container)也是一个类,实际上是Component的子类,因此容器本身也是一个组件,具有组件的所有性质,但是它的主要功能是容纳其它组件和容器。容器可以简化图形化界面的设计,以整体结构来布置界面。所有的容器都可以通过add()方法向容器中添加组件。常用的容器3种:Panel, Frame, Applet。
框架(Frame)
1、生成一个窗口,通常使用Window的子类Frame类进行实例化,而不是直接使用Window 类,框架的外观就像平常Windows系统下的窗口,有标题、边框、菜单和大小等。setSize()方法可以设置框架尺寸的大小,setVisibe()方法可以设置窗口的可见性。
2、面板是一种透明的容器,没有标题和边框。与Frame 不同,Panel不能作为最外层的容器单独存在,它首先必须作为一个组件放置在其他容器(一般为Frame)中,然后把组件添加到它里面。在java.swing中则是JPanel。
3、框架一般用作Java应用程序的窗口,而Applet是Java小程序的窗口。与Frame不同,Applet是在网页中显示的,也可以通过添加Panel进行组件布局。
3、布局管理器:LayoutManager
使用布局管理器可以使容器中的组件按照指定的位置进行摆放,另外的一个优点是即使容器改变大小,布局管理器也可以准确地把组件放到指定的位置,这样可以有效地保证版面不会混乱。
在AMT中的所有布局管理器都是LayoutManager的子类。
流布局管理器(FlowLayout)
FlowLayout是Panel 和 Applet 的默认布局管理器。在该布局管理器中,组件在容器中按照从上到下,从左到右的顺序进行排列,行满后则换行。
构造方法:
FlowLayout();默认构造方法,设置居中对齐方式,横向和纵向间隔均为默认5像素
FlowLayout(FlowLayout.LEFT);设置居左对齐,横向和纵向间隔均为默认5像素
FlowLayout(FlowLayout.RIGHT,20,40);设置居右对齐,横向间隔20像素,纵向间隔40像
边界布局管理器(BorderLayout)
构造方法:
BorderLayout是Window、Frame和Dialog的默认布局管理器,其将容器分成North、South、East、West和Center 5个区域,每个区域只能放置一个组件。在使用add()方法添加组件到容器时,必须指定将其放置在哪个区域中。使用BorderLayout时,如果容器大小发生变换,组件的相对位置不变。
网格布局管理器(GridLayout)
构造方法:
GridLayout 可使容器中的各个组件呈网格状布局,平局占据容器的空间,即使容器的大小发生变化,每个组件还是平均占据容器的空间。和FlowLayout一样,GridLayout也是按照从上到下,从左到右的规律进行排列的。
卡片布局管理器(CardLayout)
构造方法:
CardLayout能够帮助用户处理两个乃至跟多的成员共享同一显示空间。它把容器分成许多层,每层的显示空间占据整个容器的大小,并且每层之允许反之一个组件,可以通过Panel来实现每层复杂的用户界面。
绝对定位:
方法:setBounds(),可以定位一个组件的坐标,使用x,y的坐标定位方式。
使用它的好处是,不管窗体如何改变大小,组件的位置是固定不动的;而在之前的各种排版方式中,当窗体改变时,组件大小也会跟着改变。
AWT常用组件
组件名称 构造方法 使用说明
按钮(Button) Button b=new Button("退出"); 单击按钮产生ActionEvent事件,实现ActionListener接口并重写actionPerformed()方法监听和处理事件
文本框(TextField) TextField ft=new TextField(16); 文本框只能显示一行,按Enter键时产生ActionEvent事件,通过ActionListener接口中的actionPerformed()方法处理事件