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 协助 - 硬币计数器的主要内容,如果未能解决你的问题,请参考以下文章

图像计数基于形态学实现硬币计数matlab源码

掷硬币计数游戏C++数据结构!

图像识别和计数(以硬币为例)

8P-钱币兑换问题

用小数点计数变化(可能是简单的解决方案)

[HRBUST1472]Coin(dp,计数)