程序不会返回值

时间:2014-01-20 21:50:43

标签: arrays user-interface netbeans methods parallel-processing

所以,我正在创建一个GUI,你可以在其中计算摩尔质量,质量或摩尔数,当我调用我的方法时,我似乎无法得到计算结果。我正在使用并行数组,我认为这可能是问题所在。顺便说一下,molarMass在全球宣布,但我不知道如何在这里格式化它。谢谢。

private void btnGoActionPerformed(java.awt.event.ActionEvent evt) {                                      

int indexOfElements = cmbElements.getSelectedIndex();
Double numberOfMass = Double.parseDouble(txtInputMass.getText());
Double numberOfMoles = Double.parseDouble(txtInputMoles.getText());


    if (chkMoles.isSelected()==true)
   {
   txtAnswer.setText(solveForMoles(numberOfMass).toString() + " mol");  
   }
   else if (chkMolarMass.isSelected()==true)
   {
   txtAnswer.setText(solveForMolarMass(numberOfMass, numberOfMoles).toString() + "             
   g/mol");

   }
   else if (chkMass.isSelected()==true)
   {
   txtAnswer.setText(solveForMass(numberOfMoles).toString() + " g");
   }
   else
   {
   txtAnswer.setText ("Please make a selection");
   }


private Double solveForMoles (double mass){

int indexOfElements = cmbElements.getSelectedIndex();
double numberOfMoles = mass/molarMass[indexOfElements];
return (Double.parseDouble (x.format(numberOfMoles)));
}
private Double solveForMass (double moles){
int indexOfElements = cmbElements.getSelectedIndex();
double numberOfMass = moles*molarMass[indexOfElements];
return (Double.parseDouble (x.format(numberOfMass)));
}

 private Double solveForMolarMass (double masss, double moless){

    double numberOfMolarMass = masss/moless;
    return (Double.parseDouble(x.format (numberOfMolarMass)));
    }

1 个答案:

答案 0 :(得分:0)

我建议您进行一些更改:

  1. 将所有这些计算封装到合理的Java对象而不是并行数组中。 Java是一种面向对象的语言。
  2. 将所有计算移到UI之外。编写该计算对象,JUnit对其进行彻底测试,然后将其引入UI。计算机科学和所有解决问题的方法最好用分而治之的方法来完成。