1.ActionEven事件

文本框,按钮,菜单项,密码框,单选按钮都可以出发ActionEvent事件

使用

addActionListener(ActionListener listen1)

来注册监视器

ActionListener本来是一个接口,我们必须写类(或者其他接口)来实现它的唯一方法

actionPerformed(ActionEvent e)

这里的e是事件源给该方法的一个参数,ActionEvent类有两个方法

public Object getSource();//返回事件源的上转型对象的引用
public String getActionCommand()//返回一个相关的“命令”字符串,比如这个ActionEvent是文本框,那就是返回他的文本内容

统计单词字数的一个代码

class Component extends JFrame{
JTextField test1;
JButton button1;
JTextArea testArea1;
JRadioButton radioButton1,radioButton2;
ButtonGroup group1;
Component(){
init();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init(){
setLayout(new FlowLayout());
test1=new JTextField(8);
button1=new JButton("huang");
testArea1=new JTextArea(8,24);
add(test1);
add(button1);
add(new JScrollPane(testArea1));
AListener a=new AListener(test1,button1,testArea1);
test1.addActionListener(a);//需要import java.awt.event.ActionListener;
button1.addActionListener(a);
}
} class AListener implements ActionListener{
JTextField test1;
JButton button1;
JTextArea testArea1;
AListener(JTextField test,JButton button,JTextArea testArea){
test1=test;
button1=button;
testArea1=testArea;
}
public void actionPerformed(ActionEvent e){
String a=test1.getText();
testArea1.append(a+"的长度"+a.length());
}
}


ItemEvent事件

选择框和下拉列表都可以触发ItemEvent事件

注册监视器

addItemListener(ItemListener listen1)

ItemListener接口也只有一个

对应事件触发的,可以用 combo1.getSelectedItem()获得事件的事件源

public void itemStateChanged(ItemEvent e)

简单计算器代码,(有个bug,下拉框要换了其他才能激活

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
public class test{ public static void main(String args[]){
Component window1=new Component();
window1.setBounds(40,40,300,200);
}
} class Component extends JFrame{
JTextField test1,test2;
JButton button1;
JTextArea testArea1;
JRadioButton radioButton1,radioButton2;
ButtonGroup group1;
JComboBox combo1;
Component(){
init();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init(){
setLayout(new FlowLayout());
test1=new JTextField(4);
test2=new JTextField(4);
button1=new JButton("go");
testArea1=new JTextArea(5,20);
combo1=new JComboBox();
combo1.addItem("+");
combo1.addItem("-");
combo1.addItem("*");
combo1.addItem("/");
add(test1);
add(combo1);
add(test2);
add(button1);
add(new JScrollPane(testArea1));
Computer computer1=new Computer(test1,test2,testArea1);
Fuhao fuhao1=new Fuhao(computer1,combo1);
combo1.addItemListener(fuhao1);
button1.addActionListener(computer1);
}
}
class Fuhao implements ItemListener{
Computer computer1;
JComboBox combo1;
Fuhao(Computer a,JComboBox b){
computer1=a;
combo1=b;
}
public void itemStateChanged(ItemEvent e){
// System.out.println(combo1.getSelectedItem().toString());
computer1.getFuhao(combo1.getSelectedItem().toString());
}
}
class Computer implements ActionListener{
JTextField a,b;
JTextArea c;
String fuhao;
double result;
void getFuhao(String a){
fuhao=a;
}
Computer(JTextField a,JTextField b,JTextArea c){
this.a=a;
this.b=b;
this.c=c;
}
public void actionPerformed(ActionEvent e){
try{
// System.out.println(fuhao);
// System.out.println(a.getText());
// System.out.println(b.getText());
double a1=Double.parseDouble(a.getText());
double b1=Double.parseDouble(b.getText());
if(fuhao.equals("+")){
result=a1+b1;
}else if(fuhao.equals("-")){
result=a1-b1;
}else if(fuhao.equals("*")){
result=a1*b1;
}else if(fuhao.equals("/")){
result=a1/b1;
}
c.append(a1+" "+fuhao+" "+b1+"="+" "+result+"\n");
}
catch(Exception exp){
c.append("\n请输入数字\n");
}
}
}

java事件处理的更多相关文章

  1. 从零开始理解JAVA事件处理机制(1)

    “事件”这个词已经被滥用了.正因为“事件”的被滥用,很多人在用到事件的时候不求甚解,依样画葫芦,导致学习工作了很多年,还是不清楚什么是事件处理器.什么是事件持有者.所以,如果你对于Event这个词还是 ...

  2. 从零开始理解JAVA事件处理机制(2)

    第一节中的示例过于简单<从零开始理解JAVA事件处理机制(1)>,简单到让大家觉得这样的代码简直毫无用处.但是没办法,我们要继续写这毫无用处的代码,然后引出下一阶段真正有益的代码. 一:事 ...

  3. 从零开始理解JAVA事件处理机制(3)

    我们连续写了两小节的教师-学生的例子,必然觉得无聊死了,这样的例子我们就是玩上100遍,还是不知道该怎么写真实的代码.那从本节开始,我们开始往真实代码上面去靠拢. 事件最容易理解的例子是鼠标事件:我们 ...

  4. java 事件处理

    Java事件处理机制:EventObject类作为描述事件信息的事件信息类的基类,由EventListener接口派生新的接口或类来作为事件接收方的类,再定义事件源类. 事件信息类的构造方法必须含有事 ...

  5. java事件处理机制

    java中的事件机制的参与者有3种角色:   1.event object:就是事件产生时具体的"事件",用于listener的相应的方法之中,作为参数,一般存在与listerne ...

  6. [转]Java事件处理机制- 事件监听器的四种实现方式

    原文来自http://stefan321.iteye.com/blog/345221 自身类作为事件监听器 外部类作为事件监听器 匿名内部类作为事件监听器 内部类作为事件监听器 自身类作为事件监听器: ...

  7. Java事件处理机制(深入理解)

    本文是关于Java事件处理机制的梳理,以及有重点的介绍一些注意点,至于基础的概念啥的不多赘述. 一.Java事件处理机制初步介绍(看图理解) 根据下图,结合生活实际,可以得知监护人可以有多个,坏人对小 ...

  8. Java事件处理机制- 事件监听器的四种实现方式

    自身类作为事件监听器 外部类作为事件监听器 匿名内部类作为事件监听器 内部类作为事件监听器 自身类作为事件监听器: import javax.swing.*; import java.awt.*; i ...

  9. java 事件处理机制:按下上下左右键控制小球的运动

    /** * 加深对事件处理机制的理解 * 通过上下左右键来控制一个小球的位置 */package com.test3;import java.awt.*;import javax.swing.*;im ...

  10. java事件处理机制(自定义事件)

    java中的事件机制的参与者有3种角色: 1.event object:事件状态对象,用于listener的相应的方法之中,作为参数,一般存在与listerner的方法之中 2.event sourc ...

随机推荐

  1. GCC警告提示错误“cc1:all warnings being treated as errors”

    http://blog.csdn.net/zhangjs0322/article/details/25131787

  2. BZOJ1984: 月下“毛景树”

    1984: 月下“毛景树” Time Limit: 20 Sec  Memory Limit: 64 MBSubmit: 713  Solved: 245[Submit][Status] Descri ...

  3. MySQL通用批量写入工具(Python)

    背景   平台目前的分析任务主要以Hive为主,分析后的结果存储在HDFS,用户通过REST API或者Rsync的方式获取分析结果,这样的方式带来以下几个问题:   (1)任务执行结束时间未知,用户 ...

  4. 【转】VS调试技巧

    [转自]http://blog.csdn.net/ghttzsqgm/article/details/5326894 http://blog.csdn.net/cadcisdhht/article/d ...

  5. Android新浪微博客户端(四)——添加多个账户及认证

    原文出自:方杰| http://fangjie.info/?p=75转载请注明出处 二.获取用户信息并保存数据库 上面说到加载AuthActivity有两种情况,其中一种就是授权成功回调,在授权回调成 ...

  6. 使用PHPExcel导出数据

    最近要求做增加客流数据等导出为Excel的功能,phpExcel包功能强大,根据实际需求,我只学习了简单的功能. 安装PHPExcel 在composer.json中添加: "require ...

  7. C primer plus 读书笔记第八章

    本章的标题是字符输入/输出和输入确认.主要内容是讨论用于I/O的标准函数. 1.getchar()和putchar() 这两个函数之前用过,我们通过这两个函数来讨论下缓冲区. #include &qu ...

  8. floor() 和 ceil()函数

    在C语言的库函数中,floor函数的语法例如以下: #include <math.h> double floor( double arg ); 功能: 函数返回參数不大于arg的最大整数. ...

  9. STL之set && multiset

    一.set 在了解关联容器set之前,让我们先来看看下面这个例子,并猜测该例子输出什么: // stl/set1.cpp #include <iostream> #include < ...

  10. linux grep常用参数

    # grep [-acinv] [--color=auto] '搜寻字符串' filename选项与参数:-c :计算找到 '搜寻字符串' 的次数-i :忽略大小写的不同,所以大小写视为相同-n :顺 ...