第四章 Java图形用户界面设计-4.2.1标签(Label、JLabel).ppt
4.2 AWT和Swing组件
容器组件的主要作用是包容其他组件,并按照一定的方式组织排列他们。同一个容器中的所有组件通常总是同时被显示或同时被隐藏。
容器分为顶层容器和中间层容器
AWT和Swing容器
所有容器组件都是Container类的子类。在Container类中定义了容器所需要用到的属性及方法。
常用的方法有:
框架(JFrame)
面板(JPanel)
JAVA中的常用容器组件:
可以在一个Panel(JPanel)上放入其它Panel(JPanel) 。
Panel(JPanel)是一种最简单的容器类,它提供空间将其它的组件附在其上。
一个Frame里面可放入好几个Panel(JPanel) 。 Panel(JPanel)的好处就是可将相关的组件整合组织起来,让用户接口更为简洁清楚。
面板(Panel、JPanel)的特点
窗口(Frame、JFrame)的特点
Frame的主要方法
方法
功能
void setIconImage(Image )
设置窗口的图标
Image getIconImage( )
获得窗口的图标
MenuBar getMenuBar( )
获得窗口的菜单栏
void setTitle(String )
设置窗口的标题
String getTitle( )
获得窗口的标题
Boolean isResizable( )
如果窗口大小可变返回真值
void setMenuBar(MenuBar )
设置窗口的菜单栏
void remove(MenuComponent)
从窗口中去掉指定的菜单栏
void dispose( )
清除窗口对象
问题:在过去的J2SE版本中,组件(components)不能直接添加到最高级(top level)的Swing容器,这些容器包括:JFrame, JApplet等。
解决方法之一: 调用JFrame的getContentPane()方法获得内容面板,然后该内容面板调用add()方法添加组件。
Swing中的 getContentPane()方法
解决方法之二:在J2SE5.0中,可以直接添加组件到最高级的Swing容器,也可以直接在容器内设置布局管理和删除部件。
说明:在J2SE5.0中,可以省去调用getContentPane()而直接在容器内应用add(),setLayout()和remove()。
布局管理器用来确定组件在容器中的位置和大小,AWT中定义了布局管理器接口LayoutManager的实现类来实现此功能。
LayoutManager
的实现类
1、FlowLayout布局管理器
FlowLayout是一种最简单的布局管理,是Panel的默认布局。它以流式自左向右、自上而下地放置容器中的组件,其默认方式为居中对齐方式,也可以手工设置左对齐或右对齐。
FlowLayout.LEFT FlowLayout.RIGHT FlowLayout.CENTER
对齐方式
组件行间距
组件列间距
FlowLayout布局管理器
最简单的界面布局方式,从左至右、从上至下按顺序依次摆放组件:
setLayout(new FlowLayout());
add(button1);
add(button2);
add(button3);
add(button4);
add(button5);
2、BorderLayout布局管理器
BorderLayout是Frame和Dialog的默认布局。它将整个容器分为东、西、南、北、中5个部分,加入组件时需要指明放置的位置。
组件行间距
组件列间距
BorderLayout的主要方法
int getHgap( )
返回组件间距
int getVgap( )
返回列间距
void setHgap(int)
设置组件间距
void setVgap(int)
设置列间距
按东南西北中五个区域摆放组件,通常作为窗口主框架
setLayout(new BorderLayout());
add(“North”, button1);
add(“West”, button2);
add(“East”, button3);
add(“South”, button4);
add(“Center”, button5);
BorderLayout布局管理器
以指定的行数、列数、行间距、列间距创建布局:
GridLayout(int,int,int,int)
3、GridLayout布局管理器
GridLayout的主要方法
int getHgap( )
返回组件间距
int getVgap( )
返回列间距
void setHgap(int)
设置组件间距
void setVgap(int)
设置列间距
int getRo