标签:java swing JButton add 事件 import new jf 监听
一.基本概念
1.事件表示程序和用户之间的交互,例如在文本框中输入,在列表框或组合框中选择,选中复选框和单选框,单击按钮等。
2. 在事件处理的过程中,主要涉及三类对象。
• Event(事件):用户对组件的一次操作称为一个事件,以类的形式出现。例如,键盘操作对应的事件类是 KeyEvent。
• Event Source(事件源):事件发生的场所,通常就是各个组件,例如按钮 Button。
• Event Handler(事件处理者):接收事件对象并对其进行处理的对象事件处理器,通常就是某个 Java 类中负责处理事件的成员方法。
3.事件处理者(监听器)通常是一个类,该类如果能够处理某种类型的事件,就必须实现与该事件类型相对的接口。例如,一个ButtonHandler 类之所以能够处理 ActionEvent 事件,原因在于它实现了与ActionEvent 事件对应的接口 ActionListener。每个事件类都有一个与之相对应的接口。
代码
package cn.edu.hbue.wmp;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
//1.implements继承接口抽象类
public class JFrameDemo07 extends JFrame implements ActionListener{
JLabel j;
JButton btn1;
JButton btn2;
JButton btn3;
JButton btn4;
JTextField jf;
public JFrameDemo07(){
//窗口属性
setTitle("多事件源");
setSize(400,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
j = new JLabel("请输入文字");
btn1 = new JButton("1");
btn2 = new JButton("2");
btn3 = new JButton("3");
btn4 = new JButton("4");
jf = new JTextField(10);
Container c = getContentPane();
c.setLayout(new FlowLayout());
//2.添加监听器件
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
btn4.addActionListener(this);
c.add(j);
c.add(btn1);
c.add(btn2);
c.add(btn3);
c.add(btn4);
c.add(jf);
setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new JFrameDemo07();
}
//设置相应消息响应函数
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
StringBuffer str = new StringBuffer(jf.getText());
str.append(e.getActionCommand());
String str1 = new String(str);
jf.setText(str1);
}
}
fjd7474
发布了21 篇原创文章 · 获赞 16 · 访问量 2855
私信
关注
标签:java,swing,JButton,add,事件,import,new,jf,监听 来源: https://blog.csdn.net/fjd7474/article/details/104582775
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。