题目要求:
编写一个名为“计算”的窗口,窗口布局为FlowLayout布局。窗口中添加两个文本区,当我们在第一个文本区输入若干个数的时,在,另外一个文本框输出相应的的和并计算出平均值,当输入变化时,输出也会不断更新输出和以及平均值。
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);
}
@Override
public void insertUpdate(DocumentEvent e) {
changedUpdate(e);
}
@Override
public void removeUpdate(DocumentEvent e) {
changedUpdate(e);
}
@Override
public 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);
}
}