——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 事件监听的更多相关文章

  1. java Gui编程 事件监听机制

    1.     GUI编程引言 以前的学习当中,我们都使用的是命令交互方式: 例如:在DOS命令行中通过javac java命令启动程序. 软件的交互的方式:   1. 命令交互方式    图书管理系统 ...

  2. 4.JAVA之GUI编程事件监听机制

    事件监听机制的特点: 1.事件源 2.事件 3.监听器 4.事件处理 事件源:就是awt包或者swing包中的那些图形用户界面组件.(如:按钮) 事件:每一个事件源都有自己特点有的对应事件和共性事件. ...

  3. 创建图形用户界面GUI和事件监听机制的简单实现(java)

    创建图形化界面 1.创建Frame窗体      2.对窗体进行基本设置 比如:大小.位置.布局      3.定义组件      4.将组建通过窗体添加到窗体中 5.让窗体显示,通过setVisib ...

  4. Java界面编程—事件监听机制

    组件首先要先注册事件处理器,当用户单击组件.移动鼠标或者敲击键盘时都会产生事件(Event),一旦有时间发生,应用程序就会做出对该事件的响应,这些组件就是事件源(Event source). 接受.解 ...

  5. Java中的事件监听机制

    鼠标事件监听机制的三个方面: 1.事件源对象: 事件源对象就是能够产生动作的对象.在Java语言中所有的容器组件和元素组件都是事件监听中的事件源对象.Java中根据事件的动作来区分不同的事件源对象,动 ...

  6. Java 中的事件监听机制

    看项目代码时遇到了好多事件监听机制相关的代码.现学习一下: java事件机制包含三个部分:事件.事件监听器.事件源. 1.事件:继承自java.util.EventObject类,开发人员自己定义. ...

  7. Java Spring 自定义事件监听

    ApplicationContext 事件 定义一个context的起动监听事件 import org.springframework.context.ApplicationListener; imp ...

  8. 图形用户界面(GUI)事件监听机制——窗体事件Frame

    窗体事件.Button的使用 本事例给出一个窗体的定义方法,基本属性设置,给窗体添加退出按钮,让按钮具备退出的功能.熟悉监听器的使用 按钮就是事件源. 那么选择哪一个监听器呢? 通过关闭窗体事例了解到 ...

  9. [javaSE] GUI(事件监听机制)

    外部动作——>事件源(组件)——>事件对象——>监听器 获取Frame对象,与上节一样 调用Frame对象的addWindowListener()方法,参数:WindowListen ...

  10. 转:java中的事件监听是怎样实现随时监听的

    http://blog.csdn.net/qq369201191/article/details/51204006

随机推荐

  1. vue自定义指令 - directive

    https://cn.vuejs.org/v2/guide/custom-directive.html 除了核心功能默认内置的指令,Vue也允许注册自定义指令.有的情况下,对普通 DOM 元素进行底层 ...

  2. docker registry 镜像源

    修改文件 /etc/docker/daemon.json vi /etc/docker/daemon.json添加以下内容后,重启docker服务: { "registry-mirrors& ...

  3. format( )函数

    在Python中,DETAIL_URL.format(id=id) 是一个字符串格式化的表达式.它通常用于根据一个已定义的字符串模板 DETAIL_URL 来生成一个新的字符串.在这个模板中,会包含一 ...

  4. tampermonkey脚本 百度搜索屏蔽CSDN

    // ==UserScript==// @name         屏蔽CSDN// @namespace    http://tampermonkey.net/// @version      20 ...

  5. 颠覆传统编程,用ChatGPT十倍提升生产力

    我们即将见证一个新的时代!这是最好的时代,也是最坏的时代! 需求背景 背景: 平时会编写博客,并且会把这个博客上传到github上,然后自己买一个域名挂到github上. 我平时编写的博客会有一些图片 ...

  6. 拟合算法与matlab工具包实现

    与插值问题不同,在拟合问题中不需要曲线一定经过给定的点.拟合问题的目标是寻求一个函数(曲线),使得该曲线在某种准则下与所有的数据点最为接近,即曲线拟合的最好(最小化损失函数) 目录 一.插值和拟合的区 ...

  7. VulnHub-DC-8渗透流程

    DC-8 kali:192.168.157.131 靶机:192.168.157.152 信息收集 SQL注入 Drupal 7是有sql注入漏洞的,这里也能看到?nid=1,那测试一下?nid=1' ...

  8. Java项目静态资源映射的几种方式

    一.Springboot 1.webjars方式 我们之前使用Maven构建一个Web项目时,在main目录下会存在一个webapp的目录,我们以前都是将所有的页面或静态资源导在这个目录下,但现在使用 ...

  9. Linux Shell 常用命令 - 01篇

    系列文章: Linux Shell 常用命令 - 02篇 0. 在线使用 Linux Shell 参考 https://www.sohu.com/a/343421845_298038 JS/UIX - ...

  10. 自动修改网卡 IP

    1. 讲个故事 我的一同事需要调试 PLC,需要经常修改电脑 IP 在各个工位的 PLC 间来回连接.于是,每次需要改变 IP 的时候都是手动点开网络管理界面然后再修改.终于有一天,一天改 80 次 ...