Swing和AWT都是java开发GUI经常使用的架势,但是其组件较少而且运行时还需要JRE环境;
- 抽象窗口工具包(Abstract Window Toolkit,AWT),其作用是给用户提供基本的界面组件,如窗口、按钮、菜单等。支持剪贴板。数据传输和图像操作等。
- Swing是在AWT基础上拓展而来的,是提供图形用户界面的类库;主要包括两种类型的组件:顶层容器和轻量级组件;
- 顶层容器主要包含:JFrame、JApplet、JDialog、JWindow等;
- 轻量级组件主要是继承AWT的Container类的JComponent类及其子类,主要包含JTextArea、JFextField、JButton、JMenu、JPanal等;
AWT编程实例:
package com.zhang.demo;
import javax.swing.*;
import java.awt.*;
public class AWTTest {
public static void main(String[] args) {
//创建容器和设置布局
JFrame frame = new JFrame("理解AWT");
frame.setLayout(new BorderLayout());
//创建组件添加到容器中
Button button = new Button("按钮");
frame.add(button);
//设置结构frame的位置与大小关系
frame.setBounds(300,200,400,300);
//设置窗口可见
frame.setVisible(true);
}
}
上述代码编译运行结果如下:
组件
- 组件(Component)是构成GUI的基本要素,通过对不同的事件响应来完成和用户之间的交互;
- 组件一般是作为一个对象放置在容器(Container)内,如Panal(面板)、Frame(窗口)等;
- 组件是通过容器的add方法添加到容器中。
- 容器类Container类是组件Component的子类,实际上也是一个组件,具有所有组件的性质,但他是用来容纳其他组件和容器的。
布局管理器
java中布局管理器是一个实现了LayoutManager接口的任何类的实例,由容器setLayout方法设定,如果没有此方法,则布局管理器使用默认的布局管理器;
边界布局(BorderLayout)
BorderLayout 将容器划分为5部分,容器顶部(NORTH)、容器底部(SOUTH)、容器东部(EAST)、容器西部(WEST)、容器中心(CENTER)、
实例:
package com.zhang.demo;
import java.awt.*;
public class BorderLayoutTest {
public static void main(String[] args) {
Frame frame = new Frame();
frame.setTitle("使用边界布局管理器");
frame.setLayout(new BorderLayout());
Button buttonEast = new Button("East");
Button buttonWest = new Button("West");
Button buttonSouth = new Button("South");
Button buttonNorth = new Button("North");
Button buttonCenter = new Button("Center");
//把按钮放置到Frame窗体时按照东西南北中五个方向排列;
//这样容易检查出错误 因为这样写如果写错了编译器会提示出错
frame.add(buttonEast,BorderLayout.EAST);
frame.add(buttonWest,BorderLayout.WEST);
frame.add(buttonSouth,BorderLayout.SOUTH);
frame.add(buttonNorth,BorderLayout.NORTH);
frame.add(buttonCenter,BorderLayout.CENTER);
frame.setBounds(300,200,400,300);
frame.setResizable(true);
frame.setVisible(true);
}
}
上述代码编译运行的结果如下图: