| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1060 人关注过本帖
标题:[求助]这样的题目程序是怎样怎样编写?
只看楼主 加入收藏
xuyijin
Rank: 1
等 级:新手上路
威 望:1
帖 子:90
专家分:0
注 册:2006-4-13
收藏
 问题点数:0 回复次数:11 
[求助]这样的题目程序是怎样怎样编写?
偶是一个JAVA的初学者,最近老师给我们布置了一个作业,由于我们的教教材不是一本很系统讲解JAVA知识的教材,所以好多的东东,我们都搞不懂!下面的题目应该怎样编写?哪位能帮帮忙中呀?
题目:
编写有两个文本区的小应用程序,当我们在一个文本区中输入若非个数度叶,另一个文本区同时对对你输入的数进行求和运算并救出平均值,也就是说随你输入的变化,加一个文本区不断地更新求和用平均值!
搜索更多相关主题的帖子: JAVA 文本 编写 
2006-04-24 15:08
wtyl0088
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2006-3-24
收藏
得分:0 

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Zuoye extends JFrame implements ActionListener{
private JTextField text1;
private JTextField text2;
private JTextField text3;
private JLabel lbl1;
private JLabel lbl2;
private JLabel lbl3;
private JButton btn1;
private JButton btn2;
private Container cp;
private double d=0;//存放结果
private int n=0;//记录次数
public Zuoye(){
super("zuoye");
setSize(200,200);
// setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
text1=new JTextField(5);
text2=new JTextField(5);
text3=new JTextField(5);
lbl1=new JLabel("Data");
lbl2=new JLabel("Total");
lbl3=new JLabel("Average");
btn1=new JButton("add");
btn2=new JButton("exit");
cp=getContentPane();

cp.setLayout(new GridLayout(4,2));
cp.add(lbl1);
cp.add(text1);
cp.add(lbl2);
cp.add(text2);
cp.add(lbl3);
cp.add(text3);
cp.add(btn1);
cp.add(btn2);
btn1.addActionListener(this);
btn2.addActionListener(this);

}
public void actionPerformed(ActionEvent e){
double a=0;
if(e.getSource()==btn1){
//
//int n=0;
a=Double.parseDouble(text1.getText());
d+=a;
n++;
text2.setText(String.valueOf(d));
if(n!=0)
text3.setText(String.valueOf(d/n));
}
/*if(e.getSource()==btn2)
{n=0;
//dispose();
}*/
else dispose();
}
public static void main(String[] args){
Zuoye zuoye=new Zuoye();
zuoye.setVisible(true);
}

}


2006-04-24 16:40
★王者至尊★
Rank: 1
等 级:新手上路
帖 子:528
专家分:0
注 册:2006-3-28
收藏
得分:0 
wtyl0088  写的不错 继续努力

------Java 爱好者,论坛小混混,学习中------
2006-04-24 19:02
xuyijin
Rank: 1
等 级:新手上路
威 望:1
帖 子:90
专家分:0
注 册:2006-4-13
收藏
得分:0 
首先谢谢各位的帮忙,特别是wtyl0088朋友!
不过wtyl0088朋友写出来的程序不是我题目所要求的结果:
题目:编写有两个文本区的小应用程序,当我们在一个文本区中输入若非个数时,另一个文本区同时对对你输入的数进行求和运算并求出平均值,也就是说随你输入的变化,加一个文本区不断地更新求和和平均值!也就是说随你输入的变化,加一个文本区不断地更新求和和平均值!
如:当你在左边的文本区输入:45,78,40;右边有文本区应自动的求出这三个数的和与平均值!
我试过用TextArea来实现,不过小弟刚接触JAVA,好多都不会!请教大家了!大家帮帮忙了!


初学java,希望各位大虾多多指教!!
2006-04-25 15:42
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
增加事件监听器,很快就可以实现的

可惜不是你,陪我到最后
2006-04-25 16:08
xuyijin
Rank: 1
等 级:新手上路
威 望:1
帖 子:90
专家分:0
注 册:2006-4-13
收藏
得分:0 

我写了,不过还是有问题呀,得不到结果呀!
各位大虾看看,帮一下!
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);
 }

}

}
}


初学java,希望各位大虾多多指教!!
2006-04-25 18:17
xuyijin
Rank: 1
等 级:新手上路
威 望:1
帖 子:90
专家分:0
注 册:2006-4-13
收藏
得分:0 

这是我运行得结果的程序,不过还有好多的问题!
如我只想让用户输入的内容只能为数字,输入其他字符就提示输入错误!那应该怎样改进?
望大虾指点一二,谢谢了!
源码:
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);

}
}
}


初学java,希望各位大虾多多指教!!
2006-04-25 18:47
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
收藏
得分:0 

程序代码:

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class TextDemo extends JPanel implements KeyListener {
private JTextField inputText,outputText;

TextDemo() {
inputText = new JTextField(10);
outputText = new JTextField(20);

outputText.setEditable(false);

add(inputText);
add(outputText);

inputText.addKeyListener(this);
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame f = new JFrame(\"TextDemo\");

f.getContentPane().add(new TextDemo());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(400,200);
f.setVisible(true);
}

public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub

}

public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub

}

public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
Integer index = 0;
Integer totelNumber = 0;
double averageNumer = 0.0;

try {
String[] allNumberText = inputText.getText().split(\",\");
for(String s:allNumberText) {
Integer number = Integer.valueOf(s);

if(number >= 10) {
totelNumber += number;
index++;
}
}

if(index > 0)
averageNumer = totelNumber / index;

outputText.setText(\"总合为: \" + totelNumber + \"平均值为: \" + averageNumer);
}
catch(NumberFormatException e) {
outputText.setText(\"请输入数字并以','分隔\");
}

}
}



稍微写了一下,看看是不是这样的?


向着软件工程师的目标前进!
2006-04-25 19:28
wtyl0088
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2006-3-24
收藏
得分:0 

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class TextDemo extends JPanel implements KeyListener {
private JTextField inputText,outputText;
int i=0;
TextDemo() {
inputText = new JTextField(10);
outputText = new JTextField(20);

outputText.setEditable(false);

add(inputText);
add(outputText);

inputText.addKeyListener(this);
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame f = new JFrame("TextDemo");

f.getContentPane().add(new TextDemo());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(400,200);
f.setVisible(true);
}

public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub

}

public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub

}

public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
int index = 0;
int totelNumber = 0;
double averageNumer = 0.0;


try {
String[] s = inputText.getText().split(",");
for(i=0;i<s.length;i++) {
int number = Integer.parseInt(s[i]);


totelNumber += number;
index++;
}


if(index > 0)
averageNumer = totelNumber / index;

outputText.setText("总合为: " + totelNumber + "平均值为: " + averageNumer);
}
catch(NumberFormatException e) {
outputText.setText("请输入数字并以','分隔");
}

}
}

8楼的有问题 我修改了以下


2006-04-26 13:18
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
收藏
得分:0 
你指的是for(String s:allNumberText)吧?这是jdk5.0支持的增强型for语句……如果出现错误请把jdk升为5.0……这样写要方便很多的说

向着软件工程师的目标前进!
2006-04-26 14:50
快速回复:[求助]这样的题目程序是怎样怎样编写?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039883 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved