java GUI编程之监听操作实例分析

 更新时间:2020年01月22日 10:08:41   作者:qq_42412646  
这篇文章主要介绍了java GUI编程之监听操作,结合实例形式分析了java GUI编程监听操作的Button监听、TextField文本输入监听等相关操作技巧与注意事项,需要的朋友可以参考下

本文实例讲述了java GUI编程之监听操作。分享给大家供大家参考,具体如下:

当点击Frame中的component组件时,会产生相应的效果,但是相应的其必须进行监听,确定是那个对象,那种操作,但是如果用cup进行主动的监听就会消耗大量的资源,所以有了被动的监听,即对应的事件发生后会自动的执行相关的代码。

Button监听:

instance 1:

import java.awt.*;
import java.awt.event.*;
public class MoniterStart {
 public static void main(String[] args) {
 Frame f = new Frame();
 Button b = new Button("Press ");
 f.add(b,BorderLayout.CENTER);
 MyMonitor bh = new MyMonitor();
 b.addActionListener(bh);
 f.setBounds(100, 100, 300, 300);
 f.setVisible(true);
 }
}
class MyMonitor implements ActionListener{
 public void actionPerformed(ActionEvent e) {
 System.out.println("aAH");
 }
}

进行被动监听是你必须确定是什么地方什么类型的componet发出的,我们不可能提供所有的信息,所以我们初建了一个事件对应一个对象,其都实现了一个接口,当事件发生时,就会调用对应的事件方法。即(implements ActionListener),而对应的当实现方法是就要求其提供事件动作。

instance 2:

import java.awt.*;
import java.awt.event.*;
public class Monitor2 {
 public static void main(String[] args) {
 Frame f1 = new Frame();
 Button b1 = new Button("Start ");
 Button b2 = new Button("Stop ");
 b1.setActionCommand("The End");
 f1.add(b1,BorderLayout.CENTER);
 f1.add(b2,BorderLayout.SOUTH);
 MyMonitor1 bh = new MyMonitor1();
 b1.addActionListener(bh);
 b2.addActionListener(bh);
 f1.setBounds(100, 100, 300, 300);
 f1.setVisible(true);
 }
}
class MyMonitor1 implements ActionListener{
 public void actionPerformed(ActionEvent e) {
 System.out.println("aAH you get it " + e.getActionCommand());
 }
}

注:当一个监听器监听多个button对象时,我们可以用setActionCommand进行区别,这个相当于是一个属性亦或是一种标记。

TextField(文本输入监听)

instance 3;

import java.awt.*;
import java.awt.event.*;
public class TfMonitor {
 public static void main(String[] args) {
 new TFFrame();
 }
}
class TFFrame{
 TFFrame(){
 Frame f = new Frame("TF");
 TextField tf = new TextField();
 f.add(tf);
 tf.addActionListener(new TFFrameMonitor());
 f.setBounds(100, 100, 300, 300);
 f.setVisible(true);
 }
}
/*
class TFFrame extends Frame{
 TFFrame(){
// Frame f = new Frame("TF");
 TextField tf = new TextField();
 add(tf);
 tf.addActionListener(new TFFrameMonitor());
// f.setBounds(100, 100, 300, 300);
 setBounds(100, 100, 300, 300);
 setVisible(true);
 }
}
*/
class TFFrameMonitor implements ActionListener{
 public void actionPerformed(ActionEvent e) {
 TextField text = (TextField)e.getSource();
 System.out.println(text.getText());
// text.setText(null);
 }
}

TextField属于一种输入文本类的组件,对于Frame类其一种可以直接用Frame构造方法构造,直接产生一个Frame的对象,另一种可以直接继承Frame这样就相当于已经存在了一个Frame类,可以直接使用Frame里面的方法。

注:其上面的setText(null)是相当于在输入结束按回车键的时候,会自动的把输入框里的数据清空。如果没有,其还会继续存在。

instance 4:

import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TFFrame2Monitor {
 public static void main(String[] args) {
 new TFFrame2();
 }
}
class TFFrame2 extends Frame{
 TFFrame2(){
 TextField tf = new TextField();
 add(tf);
 tf.addActionListener(new TFFrameMonitor2());
 tf.setEchoChar('*');
 setBounds(100, 100, 300, 300);
 setVisible(true);
 }
}
class TFFrameMonitor2 implements ActionListener{
 public void actionPerformed(ActionEvent e) {
 TextField text = (TextField)e.getSource();
 System.out.println(text.getText());
 text.setText(null);
 }
}

仅仅是对Text Filed对象添加了一个setEchoChar,表示输入后的表面显示。如果没有,即为输入什么就显示什么,如果添加了就和输密码一样被覆盖了。

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • Java泛型与注解全面分析讲解

    Java泛型与注解全面分析讲解

    Java 泛型(generics)是 Jdk 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。Annotation(注解)是JDK1.5及以后版本引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。需要的可以参考一下
    2022-08-08
  • Java使用正则表达式删除所有HTML标签的方法示例

    Java使用正则表达式删除所有HTML标签的方法示例

    这篇文章主要介绍了Java使用正则表达式删除所有HTML标签的方法,结合完整实例形式分析了java针对HTML页面元素script标签、style标签、html标签等的正则匹配相关操作技巧,需要的朋友可以参考下
    2017-06-06
  • Java中的EnumMap集合解析

    Java中的EnumMap集合解析

    这篇文章主要介绍了Java中的EnumMap集合解析,EnumMap是Map接口的一种实现,专门用于枚举类型的键,所有枚举的键必须来自同一个枚举,
    EnumMap不允许键为空,允许值为空,需要的朋友可以参考下
    2023-09-09
  • mysql数据库忘记密码时如何修改

    mysql数据库忘记密码时如何修改

    本文主要介绍了mysql数据库忘记密码时如何修改的步骤方法,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • java接口自动化测试框架及断言详解

    java接口自动化测试框架及断言详解

    这篇文章主要介绍了java接口自动化测试框架及断言详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Java解析XML(4种方式)案例详解

    Java解析XML(4种方式)案例详解

    这篇文章主要介绍了Java解析XML(4种方式)案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • SpringBoot启动流程SpringApplication准备阶段源码分析

    SpringBoot启动流程SpringApplication准备阶段源码分析

    这篇文章主要为大家介绍了SpringBoot启动流程SpringApplication准备阶段源码分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • mybatis-plus的sql加载顺序源码解析

    mybatis-plus的sql加载顺序源码解析

    这篇文章主要为大家介绍了mybatis-plus的sql加载顺序源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • 详细解读Druid数据库连接池的使用

    详细解读Druid数据库连接池的使用

    这篇文章主要介绍了Druid数据库连接池的使用,数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个,需要的朋友可以参考下
    2023-03-03
  • MyBatis高级映射学习教程

    MyBatis高级映射学习教程

    这篇文章主要介绍了MyBatis高级映射学习教程的相关资料,需要的朋友可以参考下
    2016-05-05

最新评论