GUI编程n种方法实现两个数相加

题目:三个TextField一个Label一个Button实现两个数相加求和

一、用一个类实现:

第一种(不继承Frame):

import java.awt.*;
import java.awt.event.*;

class TestCalc1 implements ActionListener
{
	TextField tf1 = new TextField(10);
	TextField tf2 = new TextField(10);
	TextField tf3 = new TextField(15);
	Label lblPlus = new Label("+");
	Button btnEqual = new Button("=");
	Frame f = new Frame();
	TestCalc1()
	{
		f.setLayout(new FlowLayout());
		f.add(tf1);
		f.add(lblPlus);
		f.add(tf2);
		f.add(btnEqual);
		btnEqual.addActionListener(this);
		f.add(tf3);
		f.setVisible(true);
		f.pack();
	}
	public static void main(String[] args) 
	{
		new TestCalc1();
	}

	public void actionPerformed(ActionEvent e)
	{
		int a = Integer.parseInt(tf1.getText());
		int b = Integer.parseInt(tf2.getText());
		tf3.setText((a+b) + "");
	}
}

 

第二种(继承Frame):

import java.awt.*;
import java.awt.event.*;

class TestCalc2 extends Frame implements ActionListener
{
	TextField tf1 = new TextField(10);
	TextField tf2 = new TextField(10);
	TextField tf3 = new TextField(15);
	Label lblPlus = new Label("+");
	Button btnEqual = new Button("=");

	TestCalc2()
	{
		setLayout(new FlowLayout());
		add(tf1);
		add(lblPlus);
		add(tf2);
		add(btnEqual);
		btnEqual.addActionListener(this);
		add(tf3);
		setVisible(true);
		pack();
	}
	public static void main(String[] args) 
	{
		new TestCalc1();
	}

	public void actionPerformed(ActionEvent e)
	{
		int a = Integer.parseInt(tf1.getText());
		int b = Integer.parseInt(tf2.getText());
		tf3.setText((a+b) + "");
	}
}

 

二、用两个类实现:

import java.awt.*;
import java.awt.event.*;

public class CalcDesign {

	public static void main(String[] args) {
		new Calc();
	}

}

class Calc extends Frame implements ActionListener {
	TextField tf1 = new TextField();
	TextField tf2 = new TextField();
	TextField tf3 = new TextField();
	Label l1 = new Label("+");
	Button b1 = new Button("=");
	
	public Calc() {
		setLayout(new FlowLayout());
		add(tf1);
		add(l1);
		add(tf2);
		add(b1);
		add(tf3);
		b1.addActionListener(this);
		pack();
		setVisible(true);
	}

	public void actionPerformed(ActionEvent e) {
		int a = Integer.parseInt(tf1.getText());
		int b = Integer.parseInt(tf2.getText());
		int c = a + b;
		//多种整型转化成字符串型的方法
		//tf3.setText(String.valueOf(c));
		//tf3.setText(((Integer)a).toString());
		//tf3.setText(c + "");
		tf3.setText(Integer.toString(c));
	}
}

三、用三个类实现:

第一种(引用方式):

import java.awt.*;
import java.awt.event.*;

class TestCalc 
{
	public static void main(String[] args) 
	{
		new Calc().lunchFrame();
	}
}

class Calc extends Frame
{
	TextField tf1 = new TextField(10);
	TextField tf2 = new TextField(10);
	TextField tf3 = new TextField(15);
	Label lblPlus = new Label("+");
	Button btnEqual = new Button("=");

	public void lunchFrame()
	{
		setLayout(new FlowLayout());
		add(tf1);
		add(lblPlus);
		add(tf2);
		add(btnEqual);
		btnEqual.addActionListener(new Monitor());
		add(tf3);
		pack();
		setVisible(true);
	}
}

class Monitor implements ActionListener
{
	Calc c = null;
	Monitor(Calc c) {	//传递引用
		this.c = c;	
	}
	public void actionPerformed(ActionEvent e)
	{
		int a = Integer.parseInt(c.tf1.getText());
		int b = Integer.parseInt(c.tf2.getText());
		c.tf3.setText("" + (a+b));
	}
}

第二种(使用内部类):

import java.awt.*;
import java.awt.event.*;

class TestCalc 
{
	public static void main(String[] args) 
	{
		new Calc().lunchFrame();
	}
}

class Calc extends Frame
{
	TextField tf1 = new TextField(10);
	TextField tf2 = new TextField(10);
	TextField tf3 = new TextField(15);
	Label lblPlus = new Label("+");
	Button btnEqual = new Button("=");

	public void lunchFrame()
	{
		setLayout(new FlowLayout());
		add(tf1);
		add(lblPlus);
		add(tf2);
		add(btnEqual);
		btnEqual.addActionListener(new Monitor());
		add(tf3);
		pack();
		setVisible(true);
	}
	//内部类
	class Monitor implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			int a = Integer.parseInt(tf1.getText());
			int b = Integer.parseInt(tf2.getText());
			tf3.setText("" + (a+b));
		}
	}
}

 

第三种(使用局部内部类):

import java.awt.*;
import java.awt.event.*;

class TestCalc 
{
	public static void main(String[] args) 
	{
		new Calc().lunchFrame();
	}
}

class Calc extends Frame
{
	TextField tf1 = new TextField(10);
	TextField tf2 = new TextField(10);
	TextField tf3 = new TextField(15);
	Label lblPlus = new Label("+");
	Button btnEqual = new Button("=");

	public void lunchFrame()
	{
		setLayout(new FlowLayout());
		add(tf1);
		add(lblPlus);
		add(tf2);
		add(btnEqual);
		add(tf3);
		pack();
		setVisible(true);
		//局部内部类
		class Monitor implements ActionListener
		{
			public void actionPerformed(ActionEvent e)
			{
				int a = Integer.parseInt(tf1.getText());
				int b = Integer.parseInt(tf2.getText());
				tf3.setText("" + (a+b));
			}
		}
		btnEqual.addActionListener(new Monitor());
	}
}




 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值