【发布时间】:2017-03-02 06:48:27
【问题描述】:
在过去的一个月里,我一直在学习 Java,我的学习范围超出了我的班级所学的范围,因此我决定开始制作一个带有各种转换计算器的 GUI 程序。但是,有一个给我带来了麻烦。这对我来说似乎很简单,但由于某种原因它不起作用。
我想要做的是,当我单击转换按钮时,程序将美元金额转换为硬币,硬币,五分钱,便士,其中便士将是可能的最低金额。我正在通过链接到我的主类的控制器类来配置它。我在下面附上了我的代码。谢谢!
package calculator.coins;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
public class CoinsController {
@FXML
private Button convertButton;
@FXML
private Button resetButton;
@FXML
private TextField dollarsText;
@FXML
private TextField quartersText;
@FXML
private TextField dimesText;
@FXML
private TextField nickelsText;
@FXML
private TextField penniesText;
@FXML
private void ConvertDollars(ActionEvent event)
{
double monetary_amount, quarters, dimes, nickels, pennies;
monetary_amount = Double.parseDouble(dollarsText.getText().toString());
quarters = (monetary_amount / .25);
monetary_amount = monetary_amount%.25;
dimes = (monetary_amount / .10);
monetary_amount = monetary_amount%.10;
nickels = (monetary_amount / .05);
monetary_amount = monetary_amount%0.05;
pennies = (monetary_amount / .01);
monetary_amount = monetary_amount%.01;
quartersText.setText("" +quarters);
dimesText.setText("" +dimes);
nickelsText.setText("" +nickels);
penniesText.setText("" +pennies);
}
@FXML
private void resetProg(ActionEvent event)
{
quartersText.setText("");
dimesText.setText("");
nickelsText.setText("");
penniesText.setText("");
dollarsText.requestFocus();
}
}
【问题讨论】:
-
究竟是什么不工作?你会期待什么?查看您的代码,我假设调用了“ConvertDollars”方法(按照惯例,您应该使用小写的“c”命名)并且您看不到任何结果。那是因为您仅将结果分配给局部变量。您必须将计算结果放入文本字段或其他内容中。
-
当我转换美元时,程序将 QuartersText 的文本设置为 0,dimesText 设置为 1,nickelsText 设置为 1,penniesText 设置为 0。相反,我希望它在我点击按钮后的位置输入我的美元金额,它将用尽可能多的硬币填充各种硬币文本字段,其中便士将是所有其他硬币的剩余部分。所以本质上,25美分硬币然后是硬币然后是硬币然后是便士。我可以让程序在控制台中运行,但不能在 GUI 中运行,它们的设置完全相同。
-
我说得对吗:您插入 1 美元端得到输出 0 个季度、1 个硬币、1 个镍币和 0 个便士?
-
是的,没错。相反,它应该输出正确的更改。
标签: java