JAVA之GUI入门

GUI:Graphical User Interface(图形用户接口)

CLI:Command line User Interface(命令行用户接口)

JAVA:
|Awt:需要调用本地系统方法实现功能,依赖平台,不同系统显示会有区别,重量级控件
|Swing:在AWT基础上建立的,提供了更多的组建,完全由JAVA实现,轻量级控件。

事件监听机制:

1.事件源
2.事件
3.监听器
4.事件处理

事件源:就是awt包或者swing包中的那些图形界面组件
事件:每一个事件源都有自己特有的对应事件和共性事件。
监听器:将可以触发某一个事件的动作(不止一个动作)都已经封装到了监听器中。

以上三者在JAVA中已经定义好了,直接获取其对象来用就可以了

需要做的就是第四条

Frame窗体

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/**
* 此代码演示
* 创建图形化界面
* 1.创建frame窗体
* 2.对窗体进行设置
* 3.定义组件
* 4.用add方法将组件添加
* 5.通过setVisible将窗体显示
* 实现关闭事件的类是我自定义的另一个代码"Mywin.java"中
* */

public class FrameDemo {

private Frame fr;
private Button bu;


public FrameDemo() {
init();
}

private void init()//初始化
{
//新建frame窗体
fr = new Frame();//默认边界式式布局
//调整大小
fr.setSize(500,400);
//调整方位
fr.setLocation(50,40);
//更改布局方式为流式
fr.setLayout(new FlowLayout());
//定义按钮
bu = new Button("按钮");
//添加组件
fr.add(bu);
//选择是否可显示
fr.setVisible(true);
//加载事件
Myevent();
}

private void Myevent()
{
//添加窗口监听器,定义关闭窗体事件
fr.addWindowListener(new Mywin());
bu.addActionListener(new ActionListener() {//匿名内部类

public void actionPerformed(ActionEvent e) {
System.out.println("按钮按了一下");
System.exit(0);
}
});
}

public static void main(String[] args) {
new FrameDemo();
}
}

鼠标事件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
bu.addMouseListener(new MouseAdapter()
{
private int count = 1;
private int clickCount = 1;
public void mouseEntered(MouseEvent e)
{
System.out.println("鼠标进入该组件"+count++);
}
public void mouseClicked(MouseEvent e)
{
System.out.println("点击动作"+clickCount++);
if(e.getClickCount()==2)
{
System.out.println("双击动作"+clickCount++);
}
}
});

bu.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("action ok");
}
});

键盘事件

1
2
3
4
5
6
7
8
9
10
11
12
//ΜνΌΣΌόΕΜΌΰΜύ
bu.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
System.out.println(KeyEvent.getKeyText(e.getKeyCode())+" "+e.getKeyCode());
if (e.getKeyCode()==KeyEvent.VK_ENTER)
{
System.exit(0);
}
}
});