一、GUI
GUI
Graphical User Interface(图形用户接口)
用图形的方式,来显示计算机操作的界面。这样更方便和更直观。
Java为GUI提供的对象都在java.awt和javax.swing两个包中。
CLI
Command Line User Interface(命令行用户接口)
就是常见的Dos命令行操作
需要记忆一些常用命令,操作不直观。
java.awt
Abstract Window ToolKit(抽象窗口工具包)
需要调用本地系统方法实现功能。属于重量级控件。
javax.swing
在AWT的基础上,建立的一套图形界面,其中提供了很多组件,完全由Java实现。增强了移植性,属于轻量级控件。
组件:组成图形界面的零件。
控件:可以控制的组件。
二、布局管理器
容器中的组件摆放,
1.FlowLayout 流式布局管理器
从左到右的顺序排列
Panel默认的布局管理器
2.BorderLayout 边界式布局管理器
东,南,西,北,中
Frame默认的布局管理器
3.GridLayout 网络布局管理器
规矩的矩阵
4.CardLayout 卡片布局管理器
选择卡
5.GridBagLayout 网格包布局管理器
非规则的矩阵
三、组件
关系继承
Container:是容器,是一个特殊的组件,该组件可以通过add方法添加其他组件进来。
Component
是一个具有图形表示能力的对象,可在屏幕上显示,并可与用户进行交互。
四、窗体
构建一个窗体:
1.创建窗体,并做基本设置(窗体大小,显示位置,布局)
2.建立其组件
3.添加组件到窗体
4.让窗体显示
代码:
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.FlowLayout;
import javax.swing.JFrame;
public class JFrameDemo {
public static void main(String[] args)
{
JFrame j = new JFrame();
JFrame f = new JFrame("窗口2");
j.setBounds(500, 200, 200, 300);
j.setLayout(new BorderLayout(100,100));
// f.setBounds(200, 0, 350, 300);
// j.setVisible(true);
j.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
// f.setVisible(true);
// f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
/*//设置边框布局
j.setLayout(new BorderLayout(10,10));
Button b = new Button("我是一个按钮");
//默认为中
f.add(b);
//在北的
f.add(new Button("北"),BorderLayout.NORTH);*/
//设置流式布局
j.setLayout(new FlowLayout());
for (int i = 0; i < 6; i++) {
j.add(new Button("按钮"+i));
}
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
j.setVisible(true);
}
}
运行结果
五、 事件监听
1.事件监听机制组成
- 事件源(组件)
- 事件(Event)
- 监听器(Listener)
- 事件处理(引发事件后处理方式)
举个栗子:
做一个调查兴趣爱好的表单
代码如下:
import java.awt.FlowLayout;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
public class DialogDemo extends JDialog {
JButton button1,button2; //按钮对象
JCheckBox checkBox1,checkBox2,checkBox3; //3个复选框对象
JRadioButton radio1,radio2; //2个单选按钮对象
public DialogDemo(){
init(); //调用初始化方法
setVisible(true);//设置对话框可见
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);//设置对话框可关
}
void init() {
setLayout(new FlowLayout());//设置布局
add(new JLabel("你喜欢的运动"));//添加标签对象
checkBox1 = new JCheckBox("瑜伽");//创建复选框对象
checkBox2 = new JCheckBox("足球");
checkBox3 = new JCheckBox("游泳");
add(checkBox1); //添加复选框对象
add(checkBox2);
add(checkBox3);
add(new JLabel(" 你 的 性 别 是: "));
ButtonGroup group = new ButtonGroup();//创建单选按钮组对象
radio1 = new JRadioButton("男");//创建单选按钮对象
radio2 = new JRadioButton("女");
group.add(radio1);//添加单选按钮到按钮组中
group.add(radio2);
add(radio1);//单选按钮添加到对话框
add(radio2);
button1 = new JButton("注册");//创建按钮对象
button2 = new JButton("取消");
add(button1);//添加按钮到对话框
add(button2);
}
public static void main(String[] args) {
DialogDemo dia = new DialogDemo();//创建对话框对象
dia.setBounds(100, 100, 270, 260);//设置对话框位置和大小
dia.setTitle(" ");//设置对话框标题
}
}
运行结果:
兴趣爱好调查表
网友评论