2015-04-12 2 views
0

Я новичок в создании GUI и немного запутался в коде ниже ... Когда я запускаю программу, она определенно работает, но когда вы вводите сумму изменений, t подсчитайте, сколько кварталов, копейки и т. д. оно просто помещает «0». Я посмотрел на свой код и ошибок не было.GUI для расчета минимального количества необходимых монет

import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.*; 

public class MinCoinsGUI extends JFrame 
{ 

    private JTextField changeTF = new JTextField(3); 
    private JTextField quartersTF = new JTextField(3); 
    private JTextField dimesTF = new JTextField(3); 
    private JTextField nickelsTF = new JTextField(3); 
    private JTextField penniesTF = new JTextField(3); 

    public MinCoinsGUI() 
    { 
     JButton CalcChangeBTN = new JButton("Calculate"); 
     JButton ClearBTN = new JButton("Clear"); 

     CalcChangeBTN.addActionListener(new ChangeBTNListener()); 
     ClearBTN.addActionListener(new ClearBTNListener()); 

     quartersTF.setEditable(false); 
     dimesTF.setEditable(false); 
     nickelsTF.setEditable(false); 
     penniesTF.setEditable(false); 

     JPanel mainPanel = new JPanel(); 
     mainPanel.setLayout(new GridLayout(6, 2, 2, 2)); 

     mainPanel.add(new JLabel("Enter Change (1-99)")); 
     mainPanel.add(changeTF); 

     mainPanel.add(new JLabel("Quarters")); 
     mainPanel.add(quartersTF); 

     mainPanel.add(new JLabel("Dimes")); 
     mainPanel.add(dimesTF); 

     mainPanel.add(new JLabel("Nickels")); 
     mainPanel.add(nickelsTF); 

     mainPanel.add(new JLabel("Pennies")); 
     mainPanel.add(penniesTF); 

     mainPanel.add(CalcChangeBTN); 
     mainPanel.add(ClearBTN); 

     setContentPane(mainPanel); 
     pack(); 
     setTitle("Minimum Coins"); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setLocationRelativeTo(null); 
    } 

    class ChangeBTNListener implements ActionListener 
    { 

     public void actionPerformed(ActionEvent e) 
     { 
      String changeString = changeTF.getText(); 
      int change = Integer.parseInt(changeString); 

      String quartersString = changeTF.getText(); 
      int quarters = Integer.parseInt(quartersString); 

      String dimesString = changeTF.getText(); 
      int dimes = Integer.parseInt(dimesString); 

      String nickelsString = changeTF.getText(); 
      int nickels = Integer.parseInt(nickelsString); 

      String penniesString = changeTF.getText(); 
      int pennies = Integer.parseInt(penniesString); 

      while (change >= 25) 
      { 
       quarters++; 
       change -= 25; 
      } 

      while (change >= 10) 
      { 
       dimes++; 
       change -= 10; 
      } 

      while (change >= 5) 
      { 
       nickels++; 
       change -= 5; 
      } 

      while (change >= 1) 
      { 
       pennies++; 
       change -= 1; 
      } 

      changeTF.setText("" + change); 
     } 
    } 

    class ClearBTNListener implements ActionListener 
    { 

     public void actionPerformed(ActionEvent e) 
     { 
      changeTF.setText(""); 
     } 
    } 

    public static void main(String[] args) 
    { 
     MinCoinsGUI window = new MinCoinsGUI(); 
     window.setVisible(true); 
    } 
} 

ответ

0

Вы не устанавливаете значения в quartersTF, dimesTF и т. Д. Вообще. Все, что вы делаете, - это вычисление количества кварталов, копейки и т. Д., Все время уменьшая change до тех пор, пока оно не достигнет нуля, а затем установите этот нуль обратно на changeTF. Если вы хотите увидеть значения в quartersTF, dimesTF и т. Д., Вам нужно их установить.

Смежные вопросы

 Смежные вопросы