美文网首页
事件关联

事件关联

作者: TryCatch菌 | 来源:发表于2018-10-02 03:14 被阅读0次

JAVA里事件关联采用的监听机制
事件开发步骤:

1. 确定事件源
2. 确定监听器
3. 注册:建立事件源和监听器的联系

代码演示

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class MyFrame extends JFrame implements ActionListener {
      //取文本框的内容,必须把文本框做成属性
      private loveTxt nameTxt=new loveTxt("姓名",200,150,this);

      public MyFrame() {
            this.setLayout(null);
            // 方法1
            JButton j = new JButton("确定");
            j.setBounds(100, 100, 60, 40);
            // 注册,实现按钮与监听器的关联,此方法为类库方法,多态调用
            j.addActionListener(new MyEvent());
            this.add(j);

            // 方法2 另外建一个lovoButton类 此类是继承按钮的窗口类,同时也是实现监听的接口,this表示
            lovoButton l = new lovoButton("提交", 200, 200, this);
            l.addActionListener(this);

            // 方法3 使用直接书写匿名内部类,一般使用此种方式创建监听
            lovoButton l1 = new lovoButton("添加", 250, 250, this);
            l1.addActionListener(new ActionListener() {

                  @Override
                  public void actionPerformed(ActionEvent e) {
                        System.out.println("匿名内部类");

                  }
            });
            //获取设置文本框内容
            lovoButton l2=new lovoButton("加入", 300, 300, this);
            l2.addActionListener(new ActionListener() {

                  @Override
                  public void actionPerformed(ActionEvent e) {
                        //获取文本框数据getText
                        String info=nameTxt.getText();
                        System.out.println(info);
//                      //设置文本框数据
//                      nameTxt.setText("ttt");

                  }
            });


            this.setVisible(true);
            this.setSize(600, 400);
            this.setDefaultCloseOperation(3);
            this.setLocationRelativeTo(null);
      }

      public static void main(String[] args) {
            MyFrame m = new MyFrame();

      }

      @Override
      public void actionPerformed(ActionEvent e) {
            System.out.println("类继承窗体并实现事件关联");

      }
}

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

//实现监听接口
public class MyEvent implements ActionListener{

      @Override
      public void actionPerformed(ActionEvent e) {
            System.out.println("事件关联");

      }

}

import java.awt.Container;

import javax.swing.JButton;
//按钮组件
public class lovoButton extends JButton{
      public lovoButton(String txt,int x,int y,Container con){
            this.setText(txt);
            this.setBounds(x, y, 60, 40);
            con.add(this);

      }
}

import java.awt.Container;

import javax.swing.JLabel;
import javax.swing.JTextField;
//文本框组件
public class loveTxt extends JTextField{
      public loveTxt(String text,int x,int y,Container con) {
            JLabel j1=new JLabel(text);
            j1.setBounds(x, y, 80, 20);
            con.add(j1);

            this.setBounds(x+80, y, 120, 20);
            con.add(this);
      }

}

内部类中访问外部类对象:外部类名.this.
内部类能访问属性,不能访问局部变量,所以只要要操作的事件关联的文本框和标签都需设置成属性
如果事件当中要用到的就尽量做成属性(成员变量)

切换窗体需要先卸载当前窗体,需要使用 dispose方法 为卸载当前窗体

相关文章

  • 事件关联

    JAVA里事件关联采用的监听机制事件开发步骤: 代码演示 内部类中访问外部类对象:外部类名.this.内部类能访问...

  • 数据挖掘知识

    关联 关联:是指一个事件和另一个事件之间的依赖关系,关联规则挖掘就是发掘数据库中的关联关系基本的关联规则挖掘算法:...

  • 事件QAQ(笔记)

    currentTarget 事件源 当前事件源preventDefault() 不要执行与事件关联的默认操作 与事...

  • iOS多线程-RunLoop

    1、概念 RunLoop与线程关联的,是一种事件处理环,用来安排和协调到来的事件,目的就是让其关联的线程在有事件到...

  • OSSIM平台安全事件关联分析实践

    在《开源安全运维平台OSSIM最佳实践》一书中叙述到,事件关联是整个OSSIM关联分析的核心,对于OSSIM的事件...

  • OSSIM平台安全事件关联分析实践

    在《开源安全运维平台OSSIM最佳实践》一书中叙述到,事件关联是整个OSSIM关联分析的核心,对于OSSIM的事件...

  • 小说写作需要注意的问题(三)

    八、关联和考虑全面 关联又叫"线索",就是用"线"把不同的事物穿连起来。 铺垫(原因和前提条件——事件——事件的后...

  • js -- 常见事件和操作

    1、添加事件 添加事件方式获取模块对象div关联点击事件fun实现事件功能 显示隐藏图片:操作div的displa...

  • 【读书清单】写作课四

    一个好的故事必定情节精彩 001事件之间相互关联 事件妙趣横生,之间相互关联,环环相扣,引人入胜。 002情节设置...

  • React按钮的事件处理 按钮关联的四个事件

    React按钮的事件处理 按钮关联了四个事件:1. 按钮按下事件:onPress - 按下并松开...

网友评论

      本文标题:事件关联

      本文链接:https://www.haomeiwen.com/subject/ypsvoftx.html