2017-03-02 9 views
0

私は過去1ヶ月間Javaを学んでいましたが、私のクラスで学んだこと以上に分岐し、さまざまな変換計算機を備えたGUIプログラムを作成することに決めました。しかし、私に困っているものがあります。それは私にとってとてもシンプルなように思えますが、何らかの理由でうまくいきません。JavaFXMLアシスタンス - コインカウンター

私がしたいことは、変換ボタンをクリックすると、金額が四分の一、二重、ニッケル、ペニーに変換され、ペニーが可能な限り少なくなる点です。私は、メインクラスにリンクされたコントローラクラスを通してこれを設定しています。私は以下のコードを添付しています。ありがとうございました!

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(); 
} 

}

+1

何exectly isn't作業を参照してください?あなたは何を期待しますか?あなたのコードを見ると、 "ConvertDollars"メソッド(慣例では小文字の "c"で名前を付ける)が呼び出され、結果は見えません。これは結果をローカル変数に割り当てるためです。計算結果をテキストフィールドなどに入れなければなりません。 – Schlangguru

+0

ドルを変換すると、プログラムはquartersTextのテキストを0に、dimesTextを1に、nickelsTextを1に、penniesTextを0に設定します。代わりに、金額を入力した後にボタンをクリックすると、さまざまなコインテキストフィールドに、コインの可能な限り多くの金額を投入しました。ペニーは、他のすべてのものに残っているものになります。だから本質的に、四半期は次にニッケルス、そしてペニーが減る。私はコンソールでは動作するが、GUIでは動作しないプログラムを得ることができ、まったく同じようにセットアップされている。 –

+0

私はそれを正しく取ることができますか?あなたは1ドルの終わりを挿入して、出力0四半期、1ダム、1ニルル、0ペニーを得ますか? – Schlangguru

答えて

0

controllのこのコード

/* 
 
* 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)); 
 
    } 
 
    } 
 
     
 
    
 
}

関連する問題