当前位置:课程学习>>第八章 图形界面程序设计>>学习内容>>知识点一
同学们,请运用你学到的知识,尝试分析下面的案例。
案例:编写应用程序,有一个标题为“计算”的窗口,窗口的布局为FlowLayout布局。窗口中添加两个文本区,当我们在一个文本区中输入若干个数时,另一个文本区同时对你输入的数进行求和运算并求出平均值,也就是说随着你输入的变化,另一个文本区不断地更新求和及平均值。
本题主要考察了图形界面的组件和事件的使用。
import java.awt.*;
import javax.swing.event.*;
import javax.swing.*;
import java.awt.event.*;
public class Hello {
public static void main(String args[]) {
Computer fr=new Computer();
}
}
class Computer extends JFrame implements DocumentListener {
JTextArea text1,text2;
int count=1;
double sum=0,aver=0;
Computer() {
setLayout(new FlowLayout());
text1=new JTextArea(6,20);
text2=new JTextArea(6,20);
add(new JScrollPane(text1));
add(new JScrollPane(text2));
text2.setEditable(false);
(text1.getDocument()).addDocumentListener(this);
setSize(300,320);
setVisible(true);
validate();
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
public void changedUpdate(DocumentEvent e) {
String s=text1.getText();
String []a =s.split("[^0123456789.]+");
sum=0;
aver=0;
for(int i=0;i<a.length;i++) {
try { sum=sum+Double.parseDouble(a[i]);
}
catch(Exception ee) {}
}
aver=sum/a.length;
text2.setText(null);
text2.append("\n和:"+sum);
text2.append("\n平均值:"+aver);
}
public void removeUpdate(DocumentEvent e){
changedUpdate(e);
}
public void insertUpdate(DocumentEvent e){
changedUpdate(e);
}
}