题目要求:编写一个应用程序,一个标题为“计算”的窗口,布局方式为FLowLayou,设计四个按钮,分别命名为“加”,“减”,“乘”,“除”,另外窗口还有三个文本框,单击相应的按钮,将两个文本框的数字做运算,结果在第三个文本框显示结果,要求要处理NumberFormatException异常。
实验源代码:
package KeTangLianXi_第九章_课后习题3_1;
import javax.swing.;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.Document;
import javax.swing.text.Element;
import java.awt.;
public class Test {
public static void main(String[] args) {
new MyWindowscalc();
}
}
class MyWindowscalc extends JFrame implements DocumentListener {
JTextArea jTextArea, jTextArea1;
double sum, average;
int cout = 1;
public MyWindowscalc() {jTextArea = new JTextArea(6, 30);jTextArea1 = new JTextArea(6, 30);setLayout(new FlowLayout());add(new JScrollPane(jTextArea));add(new JScrollPane(jTextArea1));jTextArea1.setEditable(false);(jTextArea.getDocument()).addDocumentListener(this);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);setBounds(300, 200, 200, 200);}@Overridepublic void insertUpdate(DocumentEvent e) {changedUpdate(e);}@Overridepublic void removeUpdate(DocumentEvent e) {changedUpdate(e);}@Overridepublic void changedUpdate(DocumentEvent e) {String string = jTextArea.getText();String array[] = string.split("[^0123456789.]+");sum = 0;average = 0;for (int i = 0; i < array.length; i++) {sum += Double.parseDouble(array[i]);}average = sum / (array.length);jTextArea1.append("和为" + sum);System.out.println();jTextArea1.append("平均数为" + average);}
}
代码仅供参考,欢迎大家的批评和指正,谢谢。