java中怎么实现两个变量得到结果_java中GUI实现两个文本框内容相加并触发等于按钮得到相加结果...

import java.awt.*;

import java.awt.event.*;

public class TestMath {

public static void main(String args[]) {

new MyFrame().launchMyFrame(); //调用launchMyFrame方法

}

}

class MyFrame extends Frame {

TextField num1,num2,num3; //先声明,后初始化。先声明为成员变量,可以被访问

public void launchMyFrame() {

num1 = new TextField(10); //若在此声明和初始化,则为局部变量,不可被其他对象访问

num2 = new TextField(10); //加上数字10表示设置文本框宽度(10个字符宽)

num3 = new TextField(15); //num3文本框来放最后的和(所以大一点)

Label lb = new Label("+"); //加号是静态的文本,所以用Label

Button b = new Button("="); //等于按钮,可以触发事件(求和事件)

b.addActionListener(new myMonitor(this)); //给按钮b加上监听器

setLayout(new FlowLayout()); //Panel类的布局管理器

add(num1); //将文本框加到框架(窗体)中

add(lb);

add(num2); //这几个加入窗体中,是有顺序之分(按照实际要实现排列)

add(b);

add(num3);

pack(); //设置窗体大小(刚好包住所有输入框的大小)

setVisible(true); //设置窗体可见

}

//方法3:使用内部类(可以实现一个类访问其他类的成员变量)

/*

class myMonitor implements ActionListener { //事件监听器(点击按钮,触发的事件)

public void actionPerformed(ActionEvent e) { //事件监听器都需要重写里面的方法

int n1 = Integer.parseInt(num1.getText()); //int类型强制转化(获取num1文本框输入的内容)

int n2 = Integer.parseInt(num2.getText());

num3.setText("" + (n1+n2)); //设置num3文本框的内容(""表示强制转化字符串)

}

}

但是上面的添加监听事件代码,需要稍作改动:

b.addActionListener(new myMonitor()); //给按钮b加上监听器

*/

}

class myMonitor implements ActionListener { //事件监听器(点击按钮,触发的事件)

MyFrame tf = null; //一个类不能直接访问其他类成员变量

public myMonitor(MyFrame tf) { //在该对象中持有对方的引用(整个类的引用)

this.tf = tf;

}

/*这一段等效上面持有对方的引用(实现了一个类访问另一个类中的成员变量)

TextField num1,num2,num3; //将对方的成员变量传给自己的方法中

public myMonitor(TextField num1,TextField num2,TextField num3) {

this.num1 = num1;

this.num2 = num2;

this.num3 = num3;

}

public void actionPerformed(ActionEvent e) {

int n1 = Integer.parseInt(num1.getText());

int n2 = Integer.parseInt(num2.getText());

num3.setText("" + (n1+n2));

}

但是上面的添加监听事件代码,需要稍作改动:

b.addActionListener(new myMonitor(num1,num2,num3)); //给按钮b加上监听器

*/

public void actionPerformed(ActionEvent e) { //事件监听器都需要重写里面的方法

int n1 = Integer.parseInt(tf.num1.getText()); //int类型强制转化(获取num1文本框输入的内容)

int n2 = Integer.parseInt(tf.num2.getText());

tf.num3.setText("" + (n1+n2)); //设置num3文本框的内容(""表示强制转化字符串)

}

}

1bbda9ec70d24dabf27440be1a4f3740.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值