java小程序无法打印actionPerformed中的值

java小程序无法打印actionPerformed中的值,java,applet,actionlistener,Java,Applet,Actionlistener,我的程序不会将我在action performed方法中计算的平均值打印到GUI。我无法让它返回平均值。我已经尝试了我能想到的一切。另外,我对java相当陌生。请详细说明。谢谢 import java.applet.*; import java.awt.*; import java.awt.event.*; public class blooddriveaverage extends Applet implements ActionListener { public void init()

我的程序不会将我在action performed方法中计算的平均值打印到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;

}
import java.applet.*;
导入java.awt.*;
导入java.awt.event.*;
公共类blooddriveaverage扩展小程序实现ActionListener
{
公共void init()
{
标签标题=新标签(“血液驱动!”);
挫折地面(颜色:红色);
标签1=新标签(“部门1金额”);
textField1=新的TextField(“”);
平均值=新按钮(“平均值”);
清除=新按钮(“清除字段”);
avg.addActionListener(本);
clear.addActionListener(这个);
标签2=新标签(“部门2金额”);
textField2=新的TextField(“”);
标签3=新标签(“部门3金额”);
textField3=新的TextField(“”);
Label label4=新标签(“部门4金额”);
textField4=新的TextField(“”);
增加(标题);
添加(标签1);
添加(文本字段1);
添加(标签2);
添加(文本字段2);
添加(标签3);
添加(文本字段3);
添加(标签4);
添加(文本字段4);
加(平均值);
添加(清除);
添加(avgField);
平均立根地面(颜色为白色);
清晰。背景(颜色为橙色);
}
已执行的公共无效操作(操作事件e)
{
双平均=0;
setLayout(新的FlowLayout());
int[]myarray=新的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());
如果(例如getSource()=平均值)
{
for(int i=0;i
  • 您从不初始化
    avgField
    ,当您尝试将其添加到小程序时,这会导致
    init
    中出现
    NullPointerException
  • 您从不将
    average
    的结果分配给任何内容
  • 例如

    avgField.setText(NumberFormat.getNumberInstance().format(average));
    
    你可能想看看,如果你真的想走尖端

    AWT已严重过时…

    1)为什么要编写小程序?如果是由于老师的特殊要求,请参考。2) 为什么是AWT而不是Swing?关于放弃使用AWT组件的许多好理由,请参见我的答案。