JavaFXML 协助 - 硬币计数器
Posted
技术标签:
【中文标题】JavaFXML 协助 - 硬币计数器【英文标题】:JavaFXML Assistance - Coin Counter 【发布时间】: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 个便士? 是的,没错。相反,它应该输出正确的更改。 【参考方案1】:参考这个控制代码
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package exercise14;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import
javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
/**
*
* @author j
*/
public class FXMLDocumentController
public Label output;
// public int b;
public int c;
public Label o2;
public Label o3;
public Label o4;
public int e;
public TextField input;
public void maths()
String j= input.getText();
int a =Integer.parseInt(j);
if(a>=25)
int b=a/25;
output.setText(String.valueOf(b));
if(a%25>=10)
int c=a%25; //17
int d=c/10;
o2.setText(String.valueOf(d));
// o3.setText(String.valueOf());
if((a%25)%10>=1)
int e =(a%25)%10; //7
int f=e/5;
o3.setText(String.valueOf(f));
if((((a%25)%10)%5)>=1)
int m=((a%25)%10)%5;
o4.setText(String.valueOf(m));
【讨论】:
以上是关于JavaFXML 协助 - 硬币计数器的主要内容,如果未能解决你的问题,请参考以下文章