Java图形编程

一、实现界面的三部曲:组件、布局、事件

二、JFrame

(1)JFrame设置为可关闭:

setDefaultCloseOperation(EXIT_ON_CLOSE);

(2)对于JFrame、JDialog、JApplet,有ContentPane的容器:

getContentPane().add(label);//或直接用add(label);
getContentPane().setLayOut(...);//或直接用setLayOut(...);

三、事件处理

(1)组件添加事件处理的函数:

addActionListener();

(2)事件处理器ActionListener是一个接口,是AWTEventListener的子接口,实现该接口必须实现函数void ActionPerformed(ActionEvent e)

(3)事件类Event包含的信息:

事件源:getSource() //得到的Object可以通过强制类型转换成相应的类型

事件的具体情况:

如MouseEvent的getX()、getY()方法得到鼠标的坐标

KeyEvent的getKeyChar()得到当前的字符等等

(4)事件适配器类(Adapter)----简化实现Listener

在extends事件适配器时,只需要Override自己所需要的方法即可

常见的事件适配器:

ComponentAdapter(组件适配器)、ContainerAdapter(容器适配器)、

FocusAdapter(焦点适配器)、KeyAdapter(键盘适配器)、

MouseAdapter(鼠标适配器)、MouseMotionAdapter(鼠标运动适配器)、

WindowAdapter(窗口适配器)

(5)事件的注册:addxxxxListener

实现监听器:匿名类(new xxxxListener(){实现代码}) / (new xxxxAdapter(){实现代码})、

implements xxxxListener 、

extends xxxxListener、

Lamda表达式(针对只有一个方法的接口)

(6)一个对象可以注册多个监听器、多个对象可以注册同一个监听器(使用getSource()得到是哪一个对象)

四、事件与线程

线程中,如果要更新界面,要放到the event dispatching thread中,也就是要调用SwingUtilities.invokeLater()方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值