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 ...
随机推荐
- PHP之路——MySql基础操作语句
1,创建数据库,create datebase 数据库名,在这里kenan建立一个数据库名为myfirstdb create database myfirstdb; 2,查看所有的数据库 show d ...
- Solr4.8.0源码分析(15) 之 SolrCloud索引深入(2)
Solr4.8.0源码分析(15) 之 SolrCloud索引深入(2) 上一节主要介绍了SolrCloud分布式索引的整体流程图以及索引链的实现,那么本节开始将分别介绍三个索引过程即LogUpdat ...
- LA 小、杂、乱题合辑
${\Large 1.}$(来自丘维声『高等代数』(上)$P_{189,194}$) $(1).$ 设$A,B$分别是数域${\mathbb F}$上$n\times n,m\times n$矩阵. ...
- 变身windows达人,用运行命令直接启动所有应用程序
先看一下效果 在”运行“输入QQ,敲回车即打开登录窗口,相当于双击QQ登录快捷方式,对于码农.电脑一族这是不是一件高逼格,很酷的事?你甚至可以将任何你想设置命令启动的程序用该方式启动,比如敲chrom ...
- 14.4.3 Adaptive Hash Index 自适应hash index
14.4.3 Adaptive Hash Index 自适应hash index 自适应hash index(AHI) 让InnoDB 执行更像内存数据库在系统使用合适的负载组合和足够的内存用于Buf ...
- 【HDOJ】4857 逃生
很容易想到优先队列+拓扑排序.关键点是有限制条件者有限,无限制条件者在最后,条件相同者按序输出.因此采用逆序. #include <iostream> #include <queue ...
- BZOJ 1022 [SHOI2008]小约翰的游戏John
1022: [SHOI2008]小约翰的游戏John Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1635 Solved: 1036[Submit] ...
- -_-#【Mac】命令
切换cd $HOMEcd ~ 查看ls 查看系统显示:defaults write com.apple.finder AppleShowAllFiles -bool true隐藏:defaults w ...
- delphi 托盘程序 转
Delphi的托盘编程 .现在很多程序都用这个,比如傲游,迅雷等,主要代码如下: uses Windows, Messages, SysUtils, Variants, Classes, Grap ...
- 关于TFS2012无法发送警报邮件的问题
前几天把公司的TFS从2010升级到2012,整个过程经历了3个小时,过程比较顺利.升级完成后眼馋各种新功能,感叹知识真是待到用时方恨少呐,只得一个一个去摸索了.其中有一个“警报”的功能让我印象深刻( ...