【发布时间】:2014-10-05 18:26:53
【问题描述】:
我正在为我的班级编写一个带有摆动组件的小程序,但我在将信息存储在双精度数组中时遇到了问题。该程序完全按照我的意愿运行,只有一个例外:我通过“public double [] note;”声明一个数组;在 actionlistener 的私有方法之外。但是数组是在私有方法中初始化的。
[...]
public double summe, notenschnitt;
public int i, anzahlnoten, besteNote, schlechtesteNote;
public double [] noten;
private void jBÜbernehmen2ActionPerformed(java.awt.event.ActionEvent evt) {
if(!jTAnzahlNoten.getText().equals("") && Double.parseDouble(jTAnzahlNoten.getText())>=1
&& Double.parseDouble(jTAnzahlNoten.getText())<=5){
i++; //Counts clicks
DecimalFormat f = new DecimalFormat("#0.00");
summe = summe + Double.parseDouble(jTNote.getText()); //sum for calculating the mean
anzahlnoten = Integer.parseInt(jTAnzahlNoten.getText()); //amount of grades
noten = new double[anzahlnoten];
noten[i-1] = Double.parseDouble(jTNote.getText());
jLANoten.setText("Noten: ");
jLANoten.setVisible(true);
for(double ae: noten){
jLANoten.setText(jLANoten.getText()+" "+ae);
}
notenschnitt = summe / i;
jLBN.setVisible(true);
jLNN.setVisible(true);
jLSN.setVisible(true);
jLNA.setVisible(true);
jLNN.setText(f.format(notenschnitt));
jLNA.setText(Integer.toString(i));
jLNote.setText(i+". Note");
if(Integer.parseInt(jTNote.getText()) < besteNote){
//gets the best grade
besteNote=Integer.parseInt(jTNote.getText());
jLBN.setText(Integer.toString(besteNote));
}
if(Integer.parseInt(jTNote.getText()) > schlechtesteNote){
//gets the worst grade
schlechtesteNote=Integer.parseInt(jTNote.getText());
jLSN.setText(Integer.toString(schlechtesteNote));
}
if (i >= Integer.parseInt(jTAnzahlNoten.getText())) {
//if clicks = amount of grades -> stop
jBÜbernehmen2.setVisible(false);
jBNeueBerechnung.setVisible(true);
jTNote.setBackground(Color.LIGHT_GRAY);
jTNote.setFocusable(false);
}else{
jTNote.requestFocus();
jTNote.setText("");
}
}
}
[...]
这不是全部代码,只是关键部分
期望:foreach 循环应该给出我输入的成绩。 示例:应输入三个等级,我输入 1,2 和 3。最后一行应给出:“Noten: 1.0, 2.0, 3.0”
但在第一次单击时,它会给出:“Noten: 1.0, 0.0, 0.0”。第二次点击:“Noten: 0.0, 2.0, 0.0” 第三次点击:“Noten: 0.0, 0.0, 3.0”。
它只打印最近输入的成绩,但为什么?数组的变量被声明为 public ?!我只是不明白...
【问题讨论】: