`
哼哼哈哈云卷云舒
  • 浏览: 2804 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

e.getSource()和e.getActionCommand()的区别

阅读更多

<div class="iteye-blog-content-contain" style="font-size: 14px"></div>

e.getSource()方法依赖于事件对象。比如:JButton jb= new JButton("开始");中的事件对象就是jb。

e.getActionCommand()方法得到的是按钮上的字符串。比如:JButton jb = new JButton("开始");中返回的是字符串"开始"。


总结:用e.getSource()得到的是添加监听器的组件对象,而用e.getActionCommand()得到的是组件对象上的字符串。

 

/**
 * 该代码是为了验证getSource()和getActionCommand()的区别
 * 从程序的运行结果可以看出getSource()获取的是组件对象
 * getActionCommand()获取的是组件上的字符串
 * 具体分析见博客链接:http://1710127116.iteye.com/admin/blogs/2161725
 * 
 */
package 获取按钮对象;

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

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

public class AtWho extends JFrame {
public void initUi(){
	this.setSize(400, 300);
	this.setLocationRelativeTo(null);
	this.setLayout(new FlowLayout());
	JButton jb=new JButton("ok");
	this.add(jb);
	jb.addActionListener(new ActionListener(){

		@Override
		public void actionPerformed(ActionEvent e) {
			System.out.println("e.getActionCommand():"+e.getActionCommand());
			System.out.println("e.getSource():"+e.getSource());
		}});
	
	this.setDefaultCloseOperation(3);//参数的作用:0:点击关闭按钮对话框不会被关闭;
									//1:点击 关闭按钮对话框被立即关闭,但程序始终在开启状态;
									//2:点击关闭按钮后对话框立即被关闭,但要几秒钟后程序才能结束;
									//3:点击关闭按钮后对话框和程序都立即被关闭;其他数字将会报参数不合法的错误。
	this.setVisible(true);
}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		AtWho aw=new AtWho();
		aw.initUi();
	}

}

 

 程序运行结果:

e.getActionCommand():ok
e.getSource():javax.swing.JButton[,168,5,48x28,alignmentX=0.0,alignmentY=0.5,border=javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@f8f7db,flags=296,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=2,left=14,bottom=2,right=14],paintBorder=true,paintFocus=true,pressedIcon=,rolloverEnabled=true,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=ok,defaultCapable=true]

显然,e.getSource()获取的是按钮对象!

分享到:
评论

相关推荐

    小型简单的记事本程序

    import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.*; import javax.swing.*; ...public static void main(String[] args){ ... if(p.getActionCommand()=="新建 "|...

    JAVA编程计算器和记事本.rar

    menuItem =new JMenuItem("退出",KeyEvent.VK_E); menuItem.addActionListener(al); menu.add(menuItem); //创建Edit菜单 menu =new JMenu("编辑"); menu.setMnemonic(KeyEvent.VK_E); menubar.add(menu); ...

    一个带有括号的计算器

    } if(e.getSource()==jbutton[2]) { text.setText(&quot;-&quot;+text.getText()); } if(e.getActionCommand().equals(&quot;)&quot;)) { a=text.getText(); oper.EvaluateExpression(a); oper.EvaluateExpression...

    Java聊天室源代码

    import java.awt.*; import java.awt.event.*; import java.net.*; public class Chat { Frame f = new Frame("聊天室"); TextField tfIP = new ... ((TextField) e.getSource()).setText(""); } }); } }

    Java Swing组件单选框JRadioButton用法示例

    JRadioButton button = (JRadioButton) e.getSource(); String actionCommand = button.getActionCommand(); label.setFont(new Font("Serif", Font.PLAIN, Integer.parseInt(actionCommand))); } }); group....

    Java编写的简易计算器

    }else if (e.getSource() == jb_ce || e.getSource() == jb_c) { tf_out.setText("0"); ch = '#'; return; } // 数字键 if (act == "0") { if (!tf_out.getText().equals("0")) { tf_out.setText(tf_out....

    简单的calculatorJAVA小程序

    Object target = e.getSource(); String label = e.getActionCommand(); if (target == reset) handleReset(); else if ("0123456789.".indexOf(label) &gt; 0) handleNumber(label); else handleOperator...

    java做的计算器

    JButton bevent = (JButton) e.getSource(); double result = 0; string += bevent.getText(); text.setText(string); if (current.equals("CE")) { string = ""; result = 0; text.setText(String.valueOf...

    java课程设计报告说明书

    if(e.getSource()==resultShow) return; String s=e.getActionCommand(); if(s.equals(".")||s.equals("+/-")||s.equals("C")||s.equals("AC")||s.equals("1/x")||s.equals("=")) { //处理特殊键操作 } else {...

    java基础之标签、按钮和按钮事件简介

    3. **事件响应**:在`actionPerformed`方法中,通过`e.getSource()`获取事件源(通常是按钮),`e.getActionCommand()`获取按钮的文本,然后根据这些信息执行相应的操作。 **示例(Example 11-3)** 这是一个简单的...

    计算器_java

    ((Frame)e.getSource()).dispose(); } } ); TextArea title = new TextArea(" 软件125实训项目 一 制作:第二组 常志铭 朱靖 2013.5.10 ",10,8,TextArea.SCROLLBARS_NONE); title....

    java 技术javaSE

    `ActionEvent` 类提供了获取事件源(`getSource()`)和事件源上的文本(`getActionCommand()`)的方法。 #### Object作为所有类的超类 在Java中,`Object` 类是所有类的根类。即使一个类没有显式地继承任何类,它也...

    7[1].4+Java的事件处理

    所有事件类都继承自`AWTEvent`类,提供了`getSource()`方法,用于获取事件发生的组件。例如,`ActionEvent`代表用户执行了一个动作,如点击按钮,而`KeyEvent`则表示键盘输入。 3. **事件监听者**:事件监听者是...

    简易计算器java代码

    - `getSource()`: 获取触发事件的组件。 - `getActionCommand()`: 获取与动作关联的命令字符串。 #### 4. 代码实现分析 在给定的代码片段中,可以看到以下几点: - **主类** `TestLayout`: 包含`main`方法,...

Global site tag (gtag.js) - Google Analytics