题目:
编写有两个文本区的小应用程序,当我们在一个文本区中输入若非个数度叶,另一个文本区同时对对你输入的数进行求和运算并救出平均值,也就是说随你输入的变化,加一个文本区不断地更新求和用平均值!
我写了,不过还是有问题呀,得不到结果呀!
各位大虾看看,帮一下!
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.applet.*;
public class TextExample extends Applet implements TextListener
{
TextArea text1,text2;
public void init()
{
text1=new TextArea(6,15);
text2=new TextArea(6,15);
add(text1);
add(text2);
text2.setEditable(false);
text1.addTextListener(this);
}
public void textValueChanged(TextEvent e)
{
if(e.getSource()==text1)
{
int sum=0,avg=0;
String num=text1.getText();
StringTokenizer getNum=new StringTokenizer(num,",'\n'");
int n=getNum.countTokens();
for(int i=0;i<n-1;i++)
{
String temp=getNum.nextToken();
sum+=Integer.parseInt(temp);
text2.setText(null);
text2.append("sum="+sum);
}
}
}
}
这是我运行得结果的程序,不过还有好多的问题!
如我只想让用户输入的内容只能为数字,输入其他字符就提示输入错误!那应该怎样改进?
望大虾指点一二,谢谢了!
源码:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.applet.*;
public class TextExample extends Applet implements TextListener
{
TextArea text1,text2;
public void init()
{
text1=new TextArea(10,20);
text2=new TextArea(10,20);
add(text1);
add(text2);
text2.setEditable(false);
text1.addTextListener(this);
}
public void textValueChanged(TextEvent e)
{
if(e.getSource()==text1)
{
double sum=0.0,avg=0.0;
String num=text1.getText();
StringTokenizer getNum=new StringTokenizer(num," ,'\n'");
int n=getNum.countTokens();
for(int i=0;i<=n-1;i++)
{
String temp=getNum.nextToken();
sum+=Double.parseDouble(temp);
}
avg=sum/n;
text2.setText(null);
text2.append("您输入的数值总和为:"+sum+"\n平均值为:"+avg);
}
}
}