本文主要是介绍GUI编程第三弹_按钮上的ActionEvent事件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天学了一下文本框和按钮,感觉创建文本框和按钮都不是问题,但要处理事件却是一件很麻烦的事情,比如有一个 “确定” 按钮,当我们单击这个确定按钮后会发生什么事情呢,不一定,我们需要重写写接口ActionListener的方法,本来想着做一个简易计算器,一开始觉着很简单,但仔细一想貌似不是很容易,一个计算器至少需要 10个数字按钮,外加 一些运算法则的按钮,当触发这些按钮后,每一个按钮后需要写的东西有很多,想想我就醉了。。于是果断决定,还是先撸出来一个a+b再说吧。。
文本框
JComponent 的子类 JTextField 负责创建文本框;
按钮
JComponent 的子类 JButton 负责创建按钮;
请自行熟悉一下这两个类。
a+b 源码:
主类
public class Event {public static void main(String[] args){Wgame w=new Wgame();w.setTitle("super a+b");}
}
重写JFrame,即构建窗口;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Wgame extends JFrame{JTextField input1,input2;JTextField output;JButton result;ListenResult ls;public Wgame(){init();setBounds(20,30,300,300);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}void init(){setLayout(new FlowLayout());//设置组件流式布局input1=new JTextField(20);input2=new JTextField(20);output=new JTextField(20);add(input1);add(input2);result=new JButton("获得两数之和");add(result);output.setEditable(false);add(output);ls=new ListenResult();result.addActionListener(ls);ls.setA(input1);ls.setB(input2);ls.setOutput(output);}
}
按钮的监听器:
import java.awt.event.*;
import javax.swing.*;
import java.math.*;
public class ListenResult implements ActionListener{JTextField a,b,c;public void setA(JTextField t){a=t;}public void setB(JTextField t){b=t;}public void setOutput(JTextField t){c=t;}public void actionPerformed(ActionEvent e){BigInteger ta,tb;try{ta=new BigInteger(a.getText());tb=new BigInteger(b.getText());c.setText(ta.add(tb).toString());}catch(Exception ee){c.setText("请输入数字");}}
}
效果如下:
这篇关于GUI编程第三弹_按钮上的ActionEvent事件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!