第十一周课程总结
AWT
AWT(Abstract Window Toolkit),java.awt包提供了基本的java程序的GUI设计工具,包括组件--Component、容器--Container、布局管理器--LayoutManager。
组件
组件名称 | 构造方法 | 使用说明 |
---|---|---|
按钮(Button) | Button b=new Button("退出"); | 单击按钮产生ActionEvent事件,实现ActionListener接口并重写actionPerformed()方法监听和处理事件 |
复选框(Checkbox) | Checkbox ch=new Checkbox("one",true); | 选中复选框产生ItemAction事件,实现ItemListener接口监听和处理事件 |
下拉菜单(Choice) | Choice colorChoose=new Choice(); | 实现ItemListener接口监听和处理事件;Add()方法可在下拉列表中添加选项 |
画布(Canvas) | public Canvas(GraphicsConfigurationconfig); | 重写Canvas类的paint()方法实现完成图形处理;实现MouseListener和KeyListener接口监听Canvas组件的鼠标和键盘事件 |
文本框(TextField) | TextField ft=new TextField(16);//宽度为16个字符 | 文本框只能显示一行,按Enter键时产生ActionEvent事件,通过ActionListener接口中的actionPerformed()方法处理事件 |
文本域(TextAera) | TextArea ta=new TextArea("Textarea",4,10);//4行10列 | 可显示多行多列文本和滚动条 |
列表框(List) | List list=new List(4,false);//4行,不允许多选 | 提供多个文本选项,支持滚动条,可以浏览多项 |
对话框(Dialog) | Window类的子类 | |
文件对话框(FileDialog) | Filedialog fd=new Filedialog(frm,"fileddilog"); | 当用户想打开或存储文件时,可使用文件对话框进行操作 |
菜单栏(MenuBar) | MenuBar mb=new MenuBar(); | 通过frm.setMenuBar(mb)语句可将菜单mb设置为Frame对象frm的主菜单 |
下拉菜单(Menu) | Menu m=new Menu("Menu"); | 通过mb.add(m)可将m下拉列表添加到菜单栏中 |
菜单项(MenuItem) | MenuItem mi=new MenuItem("Openit"); | 通过mi.add(mi)将菜单项mi添加到下一个下拉列表m中。 |
颜色(Color) | //非构造方法,两种方法设置组件背景色setBackground(Color.BLUE);setBackground(newColor(100,100,100)); | 通过setForeground()方法设置组件前景色,通过setBackground()方法设置组件背景色。颜色值可使用Color类的颜色常量来设置,也可通过指定RGB颜色对象值设置 |
字体(Font) | Font font=new Font("宋体",Font.BOLD,10);//宋体,10号,加粗 | 按顺序向Font()构造方法传递有关字体设置的参数 |
容器
容器(Container)也是一个类,实际上是Component的子类,因此容器本身也是一个组件,具有组件的所有性质,但是它的主要功能是容纳其它组件和容器。容器可以简化图形化界面的设计,以整体结构来布置界面。所有的容器都可以通过add()方法向容器中添加组件。常用的容器3种:Panel, Frame, Applet。
框架(Frame)
构造方法:
Frame frm = new Frame("New Window");
要生成一个窗口,通常使用Window的子类Frame类进行实例化,而不是直接使用Window 类,框架的外观就像平常Windows系统下的窗口,有标题、边框、菜单和大小等。setSize()方法可以设置框架尺寸的大小,setVisibe()方法可以设置窗口的可见性。
面板(Panel)
构造方法:
Panel pnl = new Panel();
面板是一种透明的容器,没有标题和边框。与Frame 不同,Panel不能作为最外层的容器单独存在,它首先必须作为一个组件放置在其他容器(一般为Frame)中,然后把组件添加到它里面。在java.swing中则是JPanel。
小程序(Applet)
构造方法:
Applet apt = new Applet();
框架一般用作Java应用程序的窗口,而Applet是Java小程序的窗口。与Frame不同,Applet是在网页中显示的,也可以通过添加Panel进行组件布局。
布局管理器
布局管理器(LayoutManager):每个容器都有一个布局管理器,当容器需要对某个组件进行定位或判断其大小、尺寸时,就会调用其对应的布局管理器。使用布局管理器可以实现跨平台的特性,并且获得动态的布局效果。布局管理器负责管理组件的排列顺序、大小和位置。不同的布局管理器使用不同的布局策略,容器可以通过选择不同的布局管理器来决定如何布局。
流布局管理器(FlowLayout)
FlowLayout是Panel 和 Applet 的默认布局管理器。在该布局管理器中,组件在容器中按照从上到下,从左到右的顺序进行排列,行满后则换行。
构造方法较多,例如:
FlowLayout();
默认构造方法,设置居中对齐方式,横向和纵向间隔均为默认5像素
FlowLayout(FlowLayout.LEFT);
设置居左对齐,横向和纵向间隔均为默认5像素
FlowLayout(FlowLayout.RIGHT,20,40);
设置居右对齐,横向间隔20像素,纵向间隔40像
边界布局管理器(BorderLayout)
构造方法:
BorderLayout bl = new BorderLayout();
BorderLayout是Window、Frame和Dialog的默认布局管理器,其将容器分成North、South、East、West和Center 5个区域,每个区域只能放置一个组件。在使用add()方法添加组件到容器时,必须指定将其放置在哪个区域中。使用BorderLayout时,如果容器大小发生变换,组件的相对位置不变。
网格布局管理器(GridLayout)
构造方法:
GridLayout gl = new GridLayout(3,5); //3行5列
GridLayout 可使容器中的各个组件呈网格状布局,平局占据容器的空间,即使容器的大小发生变化,每个组件还是平均占据容器的空间。和FlowLayout一样,GridLayout也是按照从上到下,从左到右的规律进行排列的。
卡片布局管理器(CardLayout)
构造方法:
CardLayout cl = new CardLayout();
CardLayout能够帮助用户处理两个乃至跟多的成员共享同一显示空间。它把容器分成许多层,每层的显示空间占据整个容器的大小,并且每层之允许反之一个组件,可以通过Panel来实现每层复杂的用户界面。