GUI练习之计算器
简易计算器
首先要了解输入框的事件监听//Testified
import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class TestText01 { public static void main(String[] args) { //mian方法里面应该只有启动的代码 new MyFrame2(); } } class MyFrame2 extends Frame { public MyFrame2() { TextField textField = new TextField(); add(textField); //监听整个文本框输入的文字 MyActionListener2 myActionListener2=new MyActionListener2(); //按下enter 会触发e.getsource监听事件 textField.addActionListener(myActionListener2); setVisible(true); pack(); //可以设置替换编码 textField.setEchoChar('*'); } } class MyActionListener2 implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { TextField field =(TextField) e.getSource();//获得一些资源,返回的一个对象 System.out.println(field.getText());//获得输入框的文本 field.setText("");//输入置为空 } }
简易加法计算器
import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; //简易计算机器 public class TextCalc { public static void main(String[] args) { new Calculator(); } } //计算器类 class Calculator extends Frame{ public Calculator() { //3个文本框 TextField num1 = new TextField(10); TextField num2 = new TextField(10); TextField num3 = new TextField(20);//zifushu //1个标签 Label label = new Label("+"); //1个按钮 Button button = new Button("="); button.addActionListener(new MyCalculatorListener(num1,num2,num3)); //布局 setLayout(new FlowLayout()); add(num1); add(label); add(num2); add(button); add(num3); setVisible(true); pack(); } } //*** class MyCalculatorListener implements ActionListener { //获取三个变量 private TextField num1,num2,num3; //把整个 public MyCalculatorListener(TextField num1,TextField num2,TextField num3) { this.num1=num1; this.num2=num2; this.num3=num3; } @Override public void actionPerformed(ActionEvent e) { //1.获得加数和被加数 int n1= Integer.parseInt(num1.getText()); int n2= Integer.parseInt(num2.getText());//文本框内由string转换 //加法运算后放到第三个框内 num3.setText(""+(n1+n2)); //清除前三个框 num1.setText(""); num2.setText(""); } }