<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()=="新建 "|...
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("-"+text.getText()); } if(e.getActionCommand().equals(")")) { a=text.getText(); oper.EvaluateExpression(a); oper.EvaluateExpression...
import java.awt.*; import java.awt.event.*; import java.net.*; public class Chat { Frame f = new Frame("聊天室"); TextField tfIP = new ... ((TextField) e.getSource()).setText(""); } }); } }
JRadioButton button = (JRadioButton) e.getSource(); String actionCommand = button.getActionCommand(); label.setFont(new Font("Serif", Font.PLAIN, Integer.parseInt(actionCommand))); } }); group....
}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....
Object target = e.getSource(); String label = e.getActionCommand(); if (target == reset) handleReset(); else if ("0123456789.".indexOf(label) > 0) handleNumber(label); else handleOperator...
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...
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 {...
3. **事件响应**:在`actionPerformed`方法中,通过`e.getSource()`获取事件源(通常是按钮),`e.getActionCommand()`获取按钮的文本,然后根据这些信息执行相应的操作。 **示例(Example 11-3)** 这是一个简单的...
((Frame)e.getSource()).dispose(); } } ); TextArea title = new TextArea(" 软件125实训项目 一 制作:第二组 常志铭 朱靖 2013.5.10 ",10,8,TextArea.SCROLLBARS_NONE); title....
`ActionEvent` 类提供了获取事件源(`getSource()`)和事件源上的文本(`getActionCommand()`)的方法。 #### Object作为所有类的超类 在Java中,`Object` 类是所有类的根类。即使一个类没有显式地继承任何类,它也...
所有事件类都继承自`AWTEvent`类,提供了`getSource()`方法,用于获取事件发生的组件。例如,`ActionEvent`代表用户执行了一个动作,如点击按钮,而`KeyEvent`则表示键盘输入。 3. **事件监听者**:事件监听者是...
- `getSource()`: 获取触发事件的组件。 - `getActionCommand()`: 获取与动作关联的命令字符串。 #### 4. 代码实现分析 在给定的代码片段中,可以看到以下几点: - **主类** `TestLayout`: 包含`main`方法,...