2016-04-30 13 views
0

Ich versuche einen Code für meine CS 1 Klasse zu schreiben.GetChangeGui Handbuch JFrame

Der Punkt des Codes ist, einen Code zu schreiben, wo Sie Änderung von einer hundert-Dollar-Rechnung für was auch immer Betrag machen, ich muss die passenden Rechnungen und Münzen zurückgeben.

muss ich die JFrame schreiben manuell

Es wäre hilfreich, wenn jemand mir zeigen konnte, wo ich bei der Berechnung läuft falsch bin.

/** 
* 
* @author esamayoa 
*/ 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

public class GetChange extends JFrame { 
    //Declare variables 

    JButton bCompute, bReset; 
    JTextField tAmount, tQuarters, tDimes, tNickels, tPennies, tTwenty, tTen, tFive, tOne; 
    JLabel lAmount, lQuarters, lDimes, lNickels, lPennies, lTwenty, lTen, lFive, lOne; 
    double amount, diff, totalPaid, quarter, dime, nickel, penny, twenty, ten, five, one; 


    public GetChange(){ 
     //Set the attributes of the Jframe 
     setTitle("Eric"); 
     setLocation(500,10); 
     setSize(450,1000); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     setResizable(false); 
     setVisible(true); 

     //Create your Gui components 

     lAmount = new JLabel("Amount"); 
     lQuarters = new JLabel("Quarters:"); 
     lDimes = new JLabel("Dimes:"); 
     lNickels = new JLabel("Nickels:"); 
     lPennies = new JLabel("Pennies:"); 
     lTwenty = new JLabel("Twenties"); 
     lTen = new JLabel("Tens"); 
     lFive = new JLabel("Fives"); 
     lOne = new JLabel("Ones"); 

     tAmount = new JTextField(); 
     tQuarters = new JTextField(); 
     tDimes = new JTextField(); 
     tNickels = new JTextField(); 
     tPennies = new JTextField(); 
     tTwenty = new JTextField(); 
     tTen = new JTextField(); 
     tFive = new JTextField(); 
     tOne = new JTextField(); 
     bReset = new JButton("Reset"); 
     bCompute = new JButton("Compute"); 

     //Add you Gui components to the Jframe 
     setLayout(new GridLayout(10,2)); 

     add(lAmount); 
     add(tAmount); 
     add(lQuarters); 
     add(tQuarters); 
     add(lDimes); 
     add(tDimes); 
     add(lNickels); 
     add(tNickels); 
     add(lPennies); 
     add(tPennies); 
     add(lTwenty); 
     add(tTwenty); 
     add(lTen); 
     add(tTen); 
     add(lFive); 
     add(tFive); 
     add(lOne); 
     add(tOne); 
     add(bCompute); 
     add(bReset); 

     //Updates frame 
     this.validate(); 

     //Add Action Listeners to buttons 
     bReset.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent ae) { 

       tAmount.setText(""); 
       tQuarters.setText(""); 
       tDimes.setText(""); 
       tNickels.setText(""); 
       tPennies.setText(""); 
       tTwenty.setText(""); 
       tTen.setText(""); 
       tFive.setText(""); 
       tOne.setText(""); 
       tAmount.setText(""); 
      } 
     }); 

     //Create computation for compute button 
     bCompute.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent ae) { 
       totalPaid = 100; 

       amount = Double.parseDouble(tAmount.getText()); 

       diff = totalPaid-amount; 

       twenty = diff/20; 
       diff = diff%20; 
       tTwenty.setText(""+ twenty); 

       ten = diff/10; 
       diff = diff%10; 
       tTen.setText(""+ ten); 

       five = diff/5; 
       diff = diff%5; 
       tFive.setText(""+ five); 

       one = diff/1; 
       diff = diff%1; 
       tOne.setText(""+ one); 

       quarter = diff/.25; 
       diff = diff%.25; 
       tQuarters.setText(""+ quarter); 

       dime = diff/.1; 
       diff = diff%.1; 
       tDimes.setText(""+ dime); 

       nickel = diff/.05; 
       diff = diff%.05; 
       tNickels.setText(""+ nickel); 

       penny = diff/.01; 
       diff = diff%.01; 
       tPennies.setText(""+ penny); 



      } 
     }); 

    } 
    //Main Method 
    public static void main(String[] args) { 
     // TODO code application logic here 
     GetChange myApp = new GetChange(); 
    } 

} 

Antwort

1

Zum Lösen des ersten Problems die folgende (Frame nicht angezeigt) einlegen, nachdem alle Komponenten hinzugefügt werden,

this.validate(); // updates frame 

Um die Umsetzung auf die Reset-Taste hinzufügen, nur .setText verwenden ("");

bReset.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent ae) { 
      tAmount.setText(""); 
      tQuarters.setText(""); 
      tDimes.setText(""); 
      tNickels.setText(""); 
      tPennies.setText(""); 
      tTwenty.setText(""); 
      tTen.setText(""); 
      tFive.setText(""); 
      tOne.setText(""); 
      tResult.setText(""); 
     } 
    }); 

Zur Implementierung der Button-Compute hinzufügen ...

  bCompute.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent ae) { 

      double Amount = Double.parseDouble(tAmount.getText()); 
      double q = (double) Integer.parseInt(tQuarters.getText()) *.25; 
      double d = (double) Integer.parseInt(tDimes.getText()) *.10; 
      double n = (double) Integer.parseInt(tNickels.getText()) *.05; 
      double p = (double) Integer.parseInt(tPennies.getText()) *.01; 
      double T = (double) Integer.parseInt(tTwenty.getText()) *20; 
      double Ten = (double) Integer.parseInt(tTen.getText()) *10; 
      double Five = (double) Integer.parseInt(tFive.getText()) *5; 
      double one = (double) Integer.parseInt(tOne.getText()) *1; 


      double TotalPaid = q+d+n+p+T+Ten+Five+1; 
      double diff = TotalPaid-Amount; 

     //Heres an example to create how many twenties you need 
     int totalTwenties = (int)diff /20; 
     diff = diff%20; 
     tTwenty.setText("" + totalTwenties);  


     } 
    }); 

Grundsätzlich, ich habe den Unterschied zwischen Betrag bezahlt und Menge Kosten.

A) Dann wird die Anzahl, wie oft eine 20 in den Unterschied passen kann, von/20 gefunden. Als nächstes moduliere oder finde ich den Rest der Differenz und zwanzig.

B) Um die Anzahl der anderen Münzen/Scheine zu finden, die Sie als Änderung geben müssen, wiederholen Sie den Vorgang in A. beschrieben

+0

Diese Lösung sollte lassen Sie mich wissen, ob es funktioniert – DarkV1

+0

tut Dieses sehr geholfen! Das hat mir geholfen, eine ganze Menge zu verstehen, die mein beschissener CS-Lehrer mir nicht gezeigt hat. Ich denke, ich habe die Berechnung falsch gemacht oder es hat nicht funktioniert, mein neuer aktualisierter Code ist jetzt im Hauptthread. –

+0

Sie sind willkommen ^)^ – DarkV1