GetChangeGui手册JFrame

时间:2016-04-30 20:11:15

标签: java swing jframe actionlistener actionevent

我正在尝试为我的CS 1类编写代码。

代码的要点是编写一个代码,你要用一百美元的钞票进行更改,我需要退还相应的账单和硬币。

我必须手动编写JFrame

如果有人能告诉我计算中出错的地方会很有帮助。

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

}

1 个答案:

答案 0 :(得分:1)

要解决第一个问题(帧未显示),请在添加所有组件后插入以下内容

this.validate(); // updates frame

要向重置按钮添加实现,只需使用.setText("");

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

向计算按钮添加实现...

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


        }
    });

基本上,我得到了支付金额和金额成本之间的差额。

A)然后,通过/ 20找到20可以适应差异的次数。接下来,我模数或发现剩余的差异和二十。

B)要查找您需要更改的其他硬币/账单的数量,请重复A中描述的过程。