【Java-GUI】03 事件监听
——1、监听机制案例
简答理解:操作驱动程序执行
完整的操作体系:事件源、事件、监听器、注册监听
案例:
点击OK按钮,让上方的输入框写入一段字符
package cn.dzz; import javafx.scene.layout.Border;
import javafx.scene.layout.Pane; import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; public class Main {
public static void main(String[] args) {
Frame frame = new Frame("GUI-Lesson"); // 组件添加
Box verticalBox = Box.createVerticalBox();
TextField textField = new TextField(20);
Button ok = new Button("ok");
verticalBox.add(textField);
verticalBox.add(ok);
frame.add(verticalBox, BorderLayout.CENTER); // 事件处理
ok.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
textField.setText("Hello Java-GUI !!!");
}
}); frame.pack();
frame.setVisible(true);
}
}
——2、常见API
AWT将事件定义了两个类别:
简单事件和复杂事件
简单事件
ComponentEvent 组件事件(窗体大小,位置,显示状态发生变化触发) ContainerEvent 容器事件(向容器添加,删除组件触发) WindowEvent(打开,关闭,最小化最大化触发) FocusEvent(获取焦点,失去焦点触发) KeyEvent(按下,松开,单击触发) MouseEvent(单击,按下,松开,移动触发) PainteEvent(组件绘制事件,自定义)
复杂事件
ActionEvent
动作事件,当按钮、菜单项被单击
在TextField中按下Enter键触发 AjustmentEvent
调节时间,在滑动条上移动滑块以调节数值时触发 ItemEvent
选项时间,当用户选中某项,取消选中时触发 TextEvent
文本事件,当文本框,文本域里的文字发生改变时触发
对应的监听器对象
ActionListener 动作监听 ItemListener 项监听 MouseMotionListener 鼠标移动监听 MouseListener 鼠标监听 KeyListener 按键监听 FocusListener 焦点监听 AdjustmentListener 调整监听 ComponentListener 组件监听 WindowListener 窗体监听 ContainerListener 容器 TextListener 文本监听
案例:
package cn.dzz;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*; public class Main {
public static void main(String[] args) {
// 创建窗体
Frame frame = new Frame(); // 这个添加要放在组件添加之前(组件加入才会被监听到)
frame.addContainerListener(new ContainerListener() {
// 该方法监听窗体容器的组件添加
@Override
public void componentAdded(ContainerEvent e) {
Component child = e.getChild();
System.out.println("窗体容器添加了 :" + child);
}
// 该方法监听窗体容器的组件移除
@Override
public void componentRemoved(ContainerEvent e) {
Component child = e.getChild();
System.out.println("窗体容器移除了 :" + child);
}
}); // 画好的组件
Box horizontalBox = Box.createHorizontalBox(); Choice choice = new Choice();
choice.add("A");
choice.add("B");
choice.add("C"); TextField textField = new TextField(30); horizontalBox.add(choice);
horizontalBox.add(textField); frame.add(horizontalBox, BorderLayout.CENTER); // 增加组件的事件监听
textField.addTextListener(new TextListener() {
@Override
public void textValueChanged(TextEvent e) {
// 事件触发,获取组件的文本内容
String text = textField.getText();
System.out.println("输入框的内容:" + text);
}
});
choice.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
Object item = e.getItem();
System.out.println("下拉选择的内容:" + item );
}
}); // 可见 与 自适应
frame.setVisible(true);
frame.pack();
}
}
控制台打印的内容:
输入框的内容:我去恶趣
输入框的内容:我去恶趣味
输入框的内容:我去恶趣味
输入框的内容:我去恶趣味
输入框的内容:我去恶趣味
输入框的内容:我去恶趣
输入框的内容:我去恶
下拉选择的内容:B
下拉选择的内容:C
下拉选择的内容:A
组件添加到窗体容器时触发监听器:
窗体容器添加了 :javax.swing.Box[,0,0,0x0,invalid,layout=javax.swing.BoxLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=0,maximumSize=,minimumSize=,preferredSize=]
按X关闭窗口的案例
package cn.dzz;
import java.awt.*;
import java.awt.event.*; public class Main {
public static void main(String[] args) {
// 创建窗体
Frame frame = new Frame();
frame.setBounds(200,200,500,300); frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
//super.windowClosing(e);
System.exit(0);
}
}); frame.setVisible(true);
}
}
【Java-GUI】03 事件监听的更多相关文章
- java Gui编程 事件监听机制
1. GUI编程引言 以前的学习当中,我们都使用的是命令交互方式: 例如:在DOS命令行中通过javac java命令启动程序. 软件的交互的方式: 1. 命令交互方式 图书管理系统 ...
- 4.JAVA之GUI编程事件监听机制
事件监听机制的特点: 1.事件源 2.事件 3.监听器 4.事件处理 事件源:就是awt包或者swing包中的那些图形用户界面组件.(如:按钮) 事件:每一个事件源都有自己特点有的对应事件和共性事件. ...
- 创建图形用户界面GUI和事件监听机制的简单实现(java)
创建图形化界面 1.创建Frame窗体 2.对窗体进行基本设置 比如:大小.位置.布局 3.定义组件 4.将组建通过窗体添加到窗体中 5.让窗体显示,通过setVisib ...
- Java界面编程—事件监听机制
组件首先要先注册事件处理器,当用户单击组件.移动鼠标或者敲击键盘时都会产生事件(Event),一旦有时间发生,应用程序就会做出对该事件的响应,这些组件就是事件源(Event source). 接受.解 ...
- Java中的事件监听机制
鼠标事件监听机制的三个方面: 1.事件源对象: 事件源对象就是能够产生动作的对象.在Java语言中所有的容器组件和元素组件都是事件监听中的事件源对象.Java中根据事件的动作来区分不同的事件源对象,动 ...
- Java 中的事件监听机制
看项目代码时遇到了好多事件监听机制相关的代码.现学习一下: java事件机制包含三个部分:事件.事件监听器.事件源. 1.事件:继承自java.util.EventObject类,开发人员自己定义. ...
- Java Spring 自定义事件监听
ApplicationContext 事件 定义一个context的起动监听事件 import org.springframework.context.ApplicationListener; imp ...
- 图形用户界面(GUI)事件监听机制——窗体事件Frame
窗体事件.Button的使用 本事例给出一个窗体的定义方法,基本属性设置,给窗体添加退出按钮,让按钮具备退出的功能.熟悉监听器的使用 按钮就是事件源. 那么选择哪一个监听器呢? 通过关闭窗体事例了解到 ...
- [javaSE] GUI(事件监听机制)
外部动作——>事件源(组件)——>事件对象——>监听器 获取Frame对象,与上节一样 调用Frame对象的addWindowListener()方法,参数:WindowListen ...
- 转:java中的事件监听是怎样实现随时监听的
http://blog.csdn.net/qq369201191/article/details/51204006
随机推荐
- vuex做购物车功能
先创建一个cart组件 <template> <div> <ListItem></ListItem> </div> </templat ...
- ETL工具-nifi干货系列 第十四讲 nifi处理器PublishKafka实战教程
1.kettle的kafka生产者叫kafka producer,nifi中的相应处理器为PublishKafka,如下图所示: 可以很清楚的看到PublishKafka处理器支持多个版本的kafka ...
- cdn静态资源加速
阿里云cdn产品 https://www.aliyun.com/product/cdn CDN通过广泛的网络节点分布,提供快速.稳定.安全.可编程的全球内容分发加速服务,支持将网站.音视频.下载等内容 ...
- apache开源 国内镜像地址
https://mirrors.tuna.tsinghua.edu.cn/apache/kylin/apache-kylin-3.1.1/
- DeepFaceLab换脸使用
将视频转换成图片,从图片中提取人脸,从人脸中学习特征.然后应用模型,先对图片进行换脸,然后把图片合成视频. 1.src视频分解图像 2.dst视频分解图像 3.src提取面部 4.dst提取面部 5. ...
- Java与React轻松导出Excel/PDF数据
前言 在B/S架构中,服务端导出是一种高效的方式.它将导出的逻辑放在服务端,前端仅需发起请求即可.通过在服务端完成导出后,前端再下载文件完成整个导出过程.服务端导出具有许多优点,如数据安全.适用于大规 ...
- 在 AWS 平台搭建 DolphinScheduler
AWS平台搭建 DolphinScheduler DolphinScheduler 是当前热门的调度器,提供了完善的可视化.拖拉拽式的调度.在 AWS 平台上提供了 airflow 与 step fu ...
- PetaLinux常用命令汇总
创建petalinux工程 Create a new project from a reference BSP file. 用于从官方下载的BSP中抽取数据产生工程. petalinux-create ...
- P3355 骑士共存问题题解
题目链接:P3355 骑士共存问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题解: 棋盘问题考虑黑白染色成为二分图后做. 观察马的性质,可知一个点只能到一个异色点,所以,构造 ...
- 国产化率100%!全志科技A40i工业核心板规格书资料分享
1.核心板简介 创龙科技SOM-TLA40i是一款基于全志科技A40i处理器设计的4核ARM Cortex-A7国产工业核心板,每核主频高达1.2GHz. 核心板通过邮票孔连接方式引出CSI.TVIN ...