【发布时间】:2014-03-21 10:56:03
【问题描述】:
我的程序不会将我在执行的操作方法中计算的平均值打印到 GUI。我无法让它返回平均值。我已经尝试了我能想到的一切。另外,我在java方面相当新。请详细说明。谢谢!
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class blooddriveaverage extends Applet implements ActionListener
{
public void init()
{
Label title = new Label("Blood Drive!");
setBackground(Color.red);
Label label1 = new Label("Department 1 amount: ");
textField1 = new TextField(" ");
avg = new Button("Average");
clear = new Button ("Clear Fields");
avg.addActionListener(this);
clear.addActionListener(this);
Label label2 = new Label("Department 2 amount: ");
textField2 = new TextField(" ");
Label label3 = new Label("Department 3 amount: ");
textField3 = new TextField(" ");
Label label4 = new Label("Department 4 amount: ");
textField4 = new TextField(" ");
add(title);
add(label1);
add(textField1);
add(label2);
add(textField2);
add(label3);
add(textField3);
add(label4);
add(textField4);
add(avg);
add(clear);
add(avgField);
avg.setBackground(Color.white);
clear.setBackground(Color.orange);
}
public void actionPerformed(ActionEvent e)
{
double average = 0;
setLayout(new FlowLayout());
int[] myarray = new int[4];
myarray[0] = Integer.parseInt(textField1.getText().trim());
myarray[1] = Integer.parseInt(textField2.getText().trim());
myarray[2] = Integer.parseInt(textField3.getText().trim());
myarray[3] = Integer.parseInt(textField4.getText().trim());
if (e.getSource() == avg)
{
for(int i = 0; i < myarray.length; i++)
{
average += myarray[i];
}
average /= 4.00;
}
else
{
textField1.setText("");
textField2.setText("");
textField3.setText("");
textField4.setText("");
}
}
TextField textField1, textField2, textField3, textField4, avgField;
Button avg;
Button clear;
}
【问题讨论】:
-
1) 为什么要编写小程序?如果是由于规范。老师请转至Why CS teachers should stop teaching Java applets。 2) 为什么选择 AWT 而不是 Swing?请参阅我在 Swing extras over AWT 上的回答,有很多放弃使用 AWT 组件的充分理由。
标签: java applet actionlistener