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文本框的内容(""表示强制转化字符串)
	}
}

  • 15
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
实现这个功能,首先我们需要使用JavaGUI库来创建一个图形用户界面,然后添加两个按钮一个文本框。当用户点击“相加按钮时,程序会从两个输入框获取数字,将它们相加,然后将结果显示在文本框。 首先,我们需要导入JavaGUI库,比如Swing或JavaFX。然后,我们创建一个主窗口,并在窗口添加两个文本框用于输入数字,一个按钮用于触发相加操作,以及一个文本框用于显示结果。 接下来,我们需要编写一个监听器,当用户点击“相加按钮时,监听器会从两个输入框获取数字,然后将它们相加。最后,监听器会将结果显示在结果文本框。 例如,我们可以使用Swing库来实现这个功能: ```java import javax.swing.*; import java.awt.event.*; public class AddNumbersGUI extends JFrame { private JTextField num1Field, num2Field, resultField; private JButton addButton; public AddNumbersGUI() { setTitle("Add Numbers"); setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); num1Field = new JTextField(10); num2Field = new JTextField(10); resultField = new JTextField(10); resultField.setEditable(false); addButton = new JButton("相加"); addButton.addActionListener(new AddButtonListener()); JPanel panel = new JPanel(); panel.add(new JLabel("数字1:")); panel.add(num1Field); panel.add(new JLabel("数字2:")); panel.add(num2Field); panel.add(addButton); panel.add(new JLabel("结果:")); panel.add(resultField); add(panel); setVisible(true); } private class AddButtonListener implements ActionListener { public void actionPerformed(ActionEvent e) { int num1 = Integer.parseInt(num1Field.getText()); int num2 = Integer.parseInt(num2Field.getText()); int result = num1 + num2; resultField.setText(String.valueOf(result)); } } public static void main(String[] args) { new AddNumbersGUI(); } } ``` 通过这样的程序,我们就可以实现一个包含两个按钮用于实现两个相加的功能,并将结果显示在文本框Java GUI程序。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值