JavaGui入门---通过文本框和按钮监听实现简易加减计算器

class Calc extends Frame{
	TextField num1,num2,num3;

	public void loadFrame() {
		/*
		 * 		TextField num1=new TextField();
				TextField num2=new TextField();
				TextField num3=new TextField();
		因为num1已经在前面定义了
		变量num1被重载定义,会导致Exception in thread "AWT-EventQueue-0"
		num1的值返回为空
		 */
		num1=new TextField();
		num2=new TextField();
		num3=new TextField();
    }
}
  • 代码中应该尽量避免对象多次定义
package Day08;

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

public class Demo05 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new Calc().loadFrame();
	}

}
class Calc extends Frame{
	TextField num1,num2,num3;

	public void loadFrame() {
		/*
		 * 		TextField num1=new TextField();
				TextField num2=new TextField();
				TextField num3=new TextField();
		因为num1已经在前面定义了
		变量num1被重载定义,会导致Exception in thread "AWT-EventQueue-0"
		num1的值返回为空
		 */
		num1=new TextField();
		num2=new TextField();
		num3=new TextField();
		
		Label label=new Label("+");
		Button button=new Button("=");
		
		setLayout(new FlowLayout());
		add(num1);
		add(label);
		add(num2);
		add(button);
		add(num3);
		
		calcListener calclis=new calcListener(this);
		button.addActionListener(calclis);
		pack();
		setVisible(true);
	}
}
//	public Calc() {
/*		pack();
		setVisible(true);
		TextField num1=new TextField();
		TextField num2=new TextField();
		TextField num3=new TextField();
		Label label=new Label("+");
		Button button=new Button("=");
		
		setLayout(new FlowLayout());
		add(num1);
		add(label);
		add(num2);
		add(button);
		add(num3);
		
		calcListener calclis=new calcListener(this);
		button.addActionListener(calclis);*/	
	
//}
class calcListener implements ActionListener{
	//在一个类中组合另外一个类
	Calc calc=null;
	//TextField num1,num2,num3;
	public calcListener(Calc calc) {
		this.calc=calc;
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		System.out.println("你按下了"+e.getActionCommand());
		System.out.println(calc.num1.getText());
		int n1=Integer.parseInt(calc.num1.getText());
		int n2=Integer.parseInt(calc.num2.getText());
		calc.num3.setText(""+(n1+n2));
		calc.num1.setText("");
		calc.num2.setText("");
	}
	
}
posted @ 2021-02-23 16:54  LR's-bolg  阅读(107)  评论(0)    收藏  举报