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. cf C. Counting Kangaroos is Fun

    http://codeforces.com/contest/373/problem/C 贪心,先排序,然后从n/2位置倒着找每一个可不可以放到别的袋鼠内. #include <cstdio> ...

  2. ListView OnScrollListener详解(滑屏分页显示数据)

    package com.action; import java.util.ArrayList; import java.util.List; import android.app.Activity; ...

  3. HDU5406---CRB and Apple( DP) 2015 Multi-University Training Contest 10

    题意比较简单, dp[i][j] 表示上一次男女吃的deliciousness分别为i, j的时候的吃的最多的苹果. 那么dp[i][j] = max(dp[i][k] + 1),   0 < ...

  4. [Java] JVM 在执行 main 方法前的行为

    JVM 执行一个 Java 程序时,先从某个指定的 Java 类的 main 方法开始执行代码,同时,传一个字符串数组作为 main 方法的参数.例如在 Unix 系统上,执行下面的命令 java T ...

  5. [工作] 使在家办公(Work From Home)更有效率的建议

    在家办公(Work From Home) 是一种灵活的工作方式,节省了漫长的上下班挤公交的时间,有更多可支配的时间. 我司允许员工申请在家办公,每周一天的配额.本人长期在办公室工作,习惯了办公室里工作 ...

  6. ubunu设置java命令为全局的命令-添加到全局环境变量

    sudo vim /etc/environment 在environment中后边添加代码: JAVA_HOME=/usr/local/jdk1.6.0_31 CLASSPATH=/usr/local ...

  7. jquery 随机数

    var jschars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', ...

  8. git commit error about 'vi'

    error: There was a problem with the editor 'vi'. Please supply the message using either -m or -F opt ...

  9. pat 1049. Counting Ones (30)

    看别人的题解懂了一些些    参考<编程之美>P132 页<1 的数目> #include<iostream> #include<stdio.h> us ...

  10. 错误处理:java.lang.NoClassDefFoundError: org/apache/taglibs/standard/tag/rt/core/ForEachTag

    在使用JSP.Servlet进行开发时,遇到java.lang.NoClassDefFoundError: org/apache/taglibs/standard/tag/rt/core/ForEac ...