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