——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. LeetCode 680. Valid Palindrome II 验证回文字符串 Ⅱ(C++/Java)

    题目: Given a non-empty string s, you may delete at most one character. Judge whether you can make it ...

  2. kettle从入门到精通 第十五课 kettle 映射 (子转换)01

    1.kettle 里面的映射和java代码里面的封装是一个概念,就是将一个可复用的模块单独抽离为公共模块供其他模块引用,用到的步骤或者组件如下 2.构建子映射,子映射需要用到映射输入规范和映射输出规范 ...

  3. R-tree算法

    R-tree是一种用于处理空间数据的自平衡搜索树结构,特别适合于存储和查询二维或更高维度的空间对象,如点.线段.矩形等.它在地理信息系统.计算机图形学.数据库等领域有广泛应用.R树通过将空间分割成几个 ...

  4. shiro有哪些组件?

    a.Authentication:身份认证/登录,验证用户是不是拥有相应的身份: b.Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限:即判断用户是否能做事情,常见的 ...

  5. @RequestMapping 注解用在类上面有什么作用?

    是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径.

  6. Vue2复习

    Vue2 插值.指令.动态属性.表达式.v-html 插值:{{ data }} 指令 & 动态属性:例子(:id="xxx") 表达式:可以用于赋值,写在{{}}里面 v ...

  7. Java面试知识点(二)super 和 this 关键字

    this this 是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针. this 的用法在 java 中大体可以分为 3 种: 普通的直接引用 这种就不用讲了,this 相当于是指向 ...

  8. 【ZeroMQ】zguide 第一章 部分翻译

    为了更好的阅读体验,请点击这里 本文大部分内容翻译自 Chapter 1 - Basics,原因是之前翻译的版本太老了,不得不亲自披挂上阵拿机器翻译一下.只截取了部分自己可能用得到的,所以如果有看不太 ...

  9. Abp vNext 模块化系统简单介绍

    怎么使用模块1. 建立模块直接的依赖关系,可以通过DependsOnAttribute特性来确定依赖关系2. 先配置模块,实现为模块填充数据和功能设置.3. 使用模块提供的功能接口 怎么定义模块1. ...

  10. 全志科技A40i开发板规格书(四核ARM Cortex-A7,主频1.2GHz)

    1.评估板简介 创龙科技TLA40i-EVM是一款基于全志科技A40i处理器设计的4核ARM Cortex-A7高性能低功耗国产评估板,每核主频高达1.2GHz,由核心板和评估底板组成. 评估板接口资 ...