2021-04-23

JAVA第九章作业

题目:编写一个应用程序,有一个标题为“计算”的窗口,窗口的布局为FlowLayout布局。设计四个按钮,分别命名为“加”、“差”、“积、”、“除”,另外,窗口中还有三个文本框:两个用来输入数字,一个用来显示运算结果。单击相应的按钮,将两个文本框的数字做运算,在第三个文本框中显示结果。要求处理NumberFormatException异常。
Tast文件

public class Tast {
	public static void main(String[] args) {
		WindowOperation win = new WindowOperation();
		win.setBounds(200, 200, 1000, 1000);
		win.setTitle("简单计算机");
	}
}

WindowOperation

import java.awt.*;
import javax.swing.*;
import java.io.*;

public class WindowOperation extends JFrame{
		JTextField inputNumberOne,inputNumberTwo;
		JTextArea textShow;
		JButton button1,button2,button3,button4;
		ButtonGroup group;
		OperatorListener operator;
		ComputerListener computer;
		public WindowOperation() {
			init();
			setVisible(true);
			setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		}
		void init() {
			setLayout(new FlowLayout());
			inputNumberOne = new JTextField(5);
			inputNumberTwo = new JTextField(5);
			button1 = new JButton("+");
			button2 = new JButton("-");
			button3 = new JButton("*");
			button4 = new JButton("/");
			textShow = new JTextArea(9,30);
			operator = new OperatorListener();
			computer = new ComputerListener();
			operator.setWordTogether(computer);
			operator.setJButton(button1);
			operator.setJButton(button2);
			operator.setJButton(button3);
			operator.setJButton(button4);
			computer.setJTextArea(textShow);
			computer.setJTextFieldOne(inputNumberOne);
			computer.setJTextFieldTwo(inputNumberTwo);
			button1.addActionListener(computer);
			button2.addActionListener(computer);
			button3.addActionListener(computer);
			button4.addActionListener(computer);
			add(button1);
			add(button2);
			add(button3);
			add(button4);
			add(inputNumberOne);
			add(inputNumberTwo);
			add(new JScrollPane(textShow));
		}
}

OperatorListener

import java.awt.event.*;
import javax.swing.*;

public class OperatorListener implements ItemListener{
	JButton choice1;
	ComputerListener workTogether;
	public void setWordTogether(ComputerListener computer) {
		workTogether = computer;
	}
	public void setJButton(JButton box) {
		choice1 = box;
	}
	public void itemStateChanged(ItemEvent e) {
		String fuhao = choice1.getName();
		workTogether.setFuhao(fuhao);
	}
}

ComputerListener

import java.awt.event.*;
import javax.swing.*;

public class ComputerListener implements ActionListener{
	JTextField inputNumberOne,inputNumberTwo;
	JTextArea textShow;
	String fuhao;
	public void setJTextFieldOne(JTextField t) {
		inputNumberOne = t;
	}
	public void setJTextFieldTwo(JTextField t) {
		inputNumberTwo = t;
	}
	public void setJTextArea(JTextArea t) {
		textShow = t;
	}
	public void setFuhao(String s) {
		fuhao = s;
	}
	public void actionPerformed(ActionEvent e) {
		try {
			double num1 = Double.parseDouble(inputNumberOne.getText());
			double num2 = Double.parseDouble(inputNumberTwo.getText());
			double result = 0;
			if(e.getActionCommand() == "+") {
				result = num1 + num2;
			}
			else if(e.getActionCommand() == "-") {
				result = num1 - num2;
			}
			else if(e.getActionCommand() == "*") {
				result = num1 * num2;
			}
			else if(e.getActionCommand() == "/") {
				result = num1 / num2;
			}
			textShow.append(num1 +" "+ e.getActionCommand()+" "+ num2 +"="+ result +"\n");
		}
		catch(NumberFormatException exp) {
			textShow.append("\n请输入数字字符\n");
		}
	}
}

关于按钮摆放位置和大小我没有调整,需要自己调整(因为我的电脑是3k屏幕,调整按钮也只是给我自己看而已,运行时如果是别的分辨率屏幕会奇怪,索性完成题目要求就不理它了):D

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值