java事件处理
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事件处理的更多相关文章
- 从零开始理解JAVA事件处理机制(1)
“事件”这个词已经被滥用了.正因为“事件”的被滥用,很多人在用到事件的时候不求甚解,依样画葫芦,导致学习工作了很多年,还是不清楚什么是事件处理器.什么是事件持有者.所以,如果你对于Event这个词还是 ...
- 从零开始理解JAVA事件处理机制(2)
第一节中的示例过于简单<从零开始理解JAVA事件处理机制(1)>,简单到让大家觉得这样的代码简直毫无用处.但是没办法,我们要继续写这毫无用处的代码,然后引出下一阶段真正有益的代码. 一:事 ...
- 从零开始理解JAVA事件处理机制(3)
我们连续写了两小节的教师-学生的例子,必然觉得无聊死了,这样的例子我们就是玩上100遍,还是不知道该怎么写真实的代码.那从本节开始,我们开始往真实代码上面去靠拢. 事件最容易理解的例子是鼠标事件:我们 ...
- java 事件处理
Java事件处理机制:EventObject类作为描述事件信息的事件信息类的基类,由EventListener接口派生新的接口或类来作为事件接收方的类,再定义事件源类. 事件信息类的构造方法必须含有事 ...
- java事件处理机制
java中的事件机制的参与者有3种角色: 1.event object:就是事件产生时具体的"事件",用于listener的相应的方法之中,作为参数,一般存在与listerne ...
- [转]Java事件处理机制- 事件监听器的四种实现方式
原文来自http://stefan321.iteye.com/blog/345221 自身类作为事件监听器 外部类作为事件监听器 匿名内部类作为事件监听器 内部类作为事件监听器 自身类作为事件监听器: ...
- Java事件处理机制(深入理解)
本文是关于Java事件处理机制的梳理,以及有重点的介绍一些注意点,至于基础的概念啥的不多赘述. 一.Java事件处理机制初步介绍(看图理解) 根据下图,结合生活实际,可以得知监护人可以有多个,坏人对小 ...
- Java事件处理机制- 事件监听器的四种实现方式
自身类作为事件监听器 外部类作为事件监听器 匿名内部类作为事件监听器 内部类作为事件监听器 自身类作为事件监听器: import javax.swing.*; import java.awt.*; i ...
- java 事件处理机制:按下上下左右键控制小球的运动
/** * 加深对事件处理机制的理解 * 通过上下左右键来控制一个小球的位置 */package com.test3;import java.awt.*;import javax.swing.*;im ...
- java事件处理机制(自定义事件)
java中的事件机制的参与者有3种角色: 1.event object:事件状态对象,用于listener的相应的方法之中,作为参数,一般存在与listerner的方法之中 2.event sourc ...
随机推荐
- ios学习-delegate、传值、跳转页面
ios学习-delegate.传值.跳转页面 1.打开xcode,然后选择ios--Application--Empty Application一个空项目. 项目目录: 2.输入项目名称以及选 ...
- codevs 1243 网络提速
题目描述 Description 某学校的校园网由n(1<=n<=50)台计算机组成,计算机之间由网线相连,如图5.其中顶点代表计算机,边代表网线.正如你所见,不同网线的传输能力不尽相同, ...
- RESTful API -备
网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). 因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信.这导致AP ...
- CSS3自定义图标
http://ntesmailfetc.blog.163.com/blog/static/206287061201292631536545/ http://www.zhihu.com/question ...
- 无聊时,可以去HASKELL里找点感觉
可以和C,JAVA,PYTHON作任意的比较,感觉越来越晰一些计算机语言里深层的东东... doubleMe x = x + x doubleUs x y = x * + y * doubleSmal ...
- lua学习笔记之-语言基础
一.基本知识 1.第一个程序: print("hello lua"); 在交互模式下直接运行: > print("hello lua") hello lu ...
- Android 仿QQ微信开场导航以及登陆界面
相信大家对于微信等社交应用的UI界面已经都很熟悉了,该UI最值得借鉴的莫过于第一次使用的时候一些列产品介绍的图片,可以左右滑动浏览,最后进入应 用,这一效果适用于多种项目中,相信今后开发应用一定会用得 ...
- 关于unsigned int和int的加法
补码(two's complement) 在计算机系统中,数值一律用补码来表示和存储.原因在于,使用补码,可以将符号位和数值域统一处理:同时,加法和减法也可以统一处理.此外,补码与原码相互转换,其运算 ...
- XML的四种解析器原理及性能比较
转自zsq 1.DOM DOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准.DOM 是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分 ...
- Java多线程编程(二)
在 Java多线程编程(一) 中的多线程并没有返回值,本文将介绍带返回值的多线程. 要想有返回值,则需要实现新的接口Callable而不再是Runnable接口,实现的方法也改为call()方法,执行 ...