【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
随机推荐
- Kubernetes监控手册03-宿主监控实操
生产环境大都是在 Linux 下的,所以这篇文章我们先来分享如何使用 Categraf 采集 Linux OS 相关的指标.读完本篇内容,你应该可以完成机器层面的监控了. 原理概述 Categraf ...
- 第四届物联网与机器学习国际学术会议(IoTML 2024)
[ACM独立出版,高录用,见刊检索快速稳定]第四届物联网与机器学习国际学术会议(IoTML 2024) [IoTML 2023会后三个半月内完成EI检索]2024 4th International ...
- java多线程-2-概念和实现机制
知其然,而知其所以然! 在计算机领域,有多种操作系统,常见的有windows家族和unix/Linux家族,它们都支持多任务的计算模式. 它们实现多任务的机制是差不多的,这点在<<操作系统 ...
- AT24C02、04、08、16 操作说明
我们这里介绍一下常见的EEPROM,ATMEL的AT24x系列中的AT24C02,学会了这个芯片,其他系列的芯片也是类似的. AT24C02的存储容量为2K bit,内容分成32页,每页8Byte ( ...
- C# pythonnet(3)_Butter-worth低通滤波
Python代码如下 import pandas as pd import numpy as np import matplotlib.pyplot as plt from scipy import ...
- 一次Java服务内存过高的分析过程
现象 年前,收到了短信报警,显示A服务的某台机器内存过高,超过80% 如上图所示,内存会阶段性增加.奇怪的是,十多台机器中只有这一台有这个问题 堆内内存分析 最先怀疑是内存泄漏的问题,所以首先使用jm ...
- Mac Vue-cli脚手架搭建
安装node环境 官网地址:http://nodejs.cn/download/ 我选择版本:v16.16.0 修改npm镜像地址 # 查看镜像地址 npm config get registry # ...
- VirtualBox中Ubuntu 22.04 Server支持kvm
kvm简介 KVM 是 Kernel-based Virtual Machine 的缩写,是一种用于虚拟化的开源硬件虚拟化技术. 使用 Linux 内核的虚拟化模块,将物理服务器划分为多个虚拟机. K ...
- 微软账号密码修改后提示密码错误的解决方法(远程桌面&smb共享访问等)
众所周知,自从微软将Microsoft账户与Windows账号强制绑定后,使用起来便一直有诸多困难,在Microsoft Support和搜索引擎长期搜索解决方案未果,今天偶然在一个佬的博客翻到了这个 ...
- 存储系列DAS,SAN,NAS常见网络架构
随着主机.磁盘.网络等技术的发展,对于承载大量数据存储的服务器来说,服务器内置存储空间,或者说内置磁盘往往不足以满足存储需要.因此,在内置存储之外,服务器需要采用外置存储的方式扩展存储空间,今天在这里 ...