Link to home
Create AccountLog in
Avatar of urobins
urobins

asked on

error message window and ceasing execution

Is there a way to do a message window?  I am doing a project for my class and thought I would go above and beyond.  I would like to put in some error checking so if my value is less than 1 or greater than 99 I'd like to pop a window and cease executiong.  Is this possible?

package project2;

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;


public class ChangeWindow implements ActionListener  
{
      JFrame coinFrame;
    JPanel coinPanel,textPanel;
    JTextField amount,txtAmount;
    JLabel amountLabel;
    DisplayCoins coinWindow;
    JButton enterAmount;
    Graphics2D graphics;
    int quarters,dimes,nickels,pennies;
    int intCoins;
    String number;
   
      public void ChangeWIndow()
      {
      
            quarters= 0;
            dimes=0;
            nickels=0;
            pennies=0;
            
      }
      
      public void SetChange()
      {
                  
              // Create my window and set up the title
              coinFrame = new JFrame("Enter value between 1 and 99");
              coinFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              coinFrame.setSize(new Dimension(700, 700));
              
              // Create the coin panel
              coinPanel = new JPanel(new GridLayout(10, 10));
              textPanel = new JPanel(new GridLayout(10, 10));
              coinWindow = new DisplayCoins();
              
              //Adds the widgets to the panel
              addWidgets();
                           
              //Set the default button.
              coinFrame.getRootPane().setDefaultButton(enterAmount);
              
              //Add the panel to the window.
              coinFrame.getContentPane().add(coinPanel, BorderLayout.NORTH);
              coinFrame.getContentPane().add(coinWindow, BorderLayout.CENTER);
              coinFrame.getContentPane().add(textPanel, BorderLayout.SOUTH);

              //Display the window.
              coinFrame.pack();
              coinFrame.setVisible(true);
              
                    
      }
      
      // method to add widgets to the panel
       private void addWidgets() {
              //Create widgets.
              amount = new JTextField(2);
              amountLabel = new JLabel("Amount of change between 1 and 99", SwingConstants.HORIZONTAL);
              enterAmount = new JButton("Click to enter value");
              txtAmount = new JTextField(50);

              //Listen to events from the click button.
              enterAmount.addActionListener(this);

              //Add the widgets to the container.
              coinPanel.add(amount);
              coinPanel.add(amountLabel);
              coinPanel.add(enterAmount);
              textPanel.add(txtAmount);
              
              amountLabel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
              
          }
    //       Change number value to words
      private void setAmountString(int amount)
      {
            
            String[] numbers = {"zero","One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Eleven",
                        "Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"};
                        
            if (amount > 1 && amount <20)
            {
                  number = numbers[amount];            
            }
            else if (amount >19 && amount <30 )
            {                                    
                  number = "Twenty "+numbers[amount-20]+" Cents";                  
            }
            else if (amount >29 && amount <40 )
            {                                    
                  number = "Thirty "+numbers[amount-30]+" Cents";                  
            }
            else if (amount >39 && amount <50 )
            {                                    
                  number = "Fourty "+numbers[amount-40]+" Cents";                  
            }
            else if (amount >49 && amount <60 )
            {                                    
                  number = "Fifty "+numbers[amount-50]+" Cents";                  
            }
            else if (amount >59 && amount <70 )
            {                                    
                  number = "Sixty "+numbers[amount-60]+" Cents";                  
            }
            else if (amount >69 && amount <80 )
            {                                    
                  number = "Seventy "+numbers[amount-70]+" Cents";                        
            }
            else if (amount >79 && amount <90 )
            {                                    
                  number = "Eighty "+numbers[amount-80]+" Cents";                  
            }
            else if (amount >89 && amount <100 )
            {                                    
                  number = "Ninety "+numbers[amount-90]+" Cents";                  
            }
            
            
      }
      
      //Actions performed after you click the button
      public void actionPerformed(ActionEvent event)
      {
            //sets the number of quarters nickles dimes and pennies
            String value= amount.getText();
        intCoins = Integer.parseInt(value);
       
       
        //Determines the number of each coin
            quarters = intCoins/25;
        int tempValue = intCoins%25;
        dimes = tempValue/10;
        tempValue = tempValue%10;
        nickels = tempValue/5;
        tempValue= tempValue%5;
        pennies = tempValue;
       
       
       
        //turns the number into a string
        setAmountString(intCoins);
        txtAmount.setText(this.number);
        //Testing to check string
       
        graphics = (Graphics2D) coinFrame.getGraphics();
            
        //coinWindow.paintComponent(graphics);
        coinWindow.
       
       
      }
      
      public class DisplayCoins extends JPanel
      {
            /**
             *
             */
            private static final long serialVersionUID = 1L;
            
            
            
            public void paintComponent(Graphics2D graphics)
            {
                  
                  
              paintQuarters(quarters);             
              paintDimes(dimes);
              paintNickels(nickels);
              paintPennies(pennies);                                
            }
            private void paintQuarters(int quarters)
            {
                  int y =190;
                  int x = 50;
                  for (int i=1; i<=quarters;i++)
                  {
                        Coins c = Coins.QUARTER;
                        c.paint(graphics,y,x);
                        y=y+10;
                  }
                  
            }
            
            private void paintDimes(int dimes)
            {
                  int y =190;
                  int x=150 ;
                  
                  for (int i=1; i<=dimes;i++)
                  {
                        Coins c = Coins.DIME;
                        c.paint(graphics,y,x);
                        y=y+10;
                  }
            }
            private void paintNickels(int nickels)
            {
                  int y =190;
                  int x=225;
                  for (int i=1; i<=nickels;i++)
                  {
                        Coins c = Coins.NICKEL;
                        c.paint(graphics,y,x);
                        y=y+10;
                  }
            }
            private void paintPennies(int pennies)
            {
                  int y =190;
                  int x=310;
                  
                  for (int i=1; i<=pennies;i++)
                  {
                        Coins c = Coins.PENNY;
                        c.paint(graphics,y,x);
                        y=y+10;
                  }
            }
      }
      
}
---------------------------------------------------------------------------
package project2;

import java.awt.*;

public enum Coins {

      QUARTER("25",75,Color.lightGray),DIME("10",55,Color.lightGray),
      NICKEL("5",65,Color.lightGray.darker()),PENNY("1",60,Color.orange.darker());
      
      private Color color;
      private String value;
      private int size;
      
      private Coins (String value, int size,Color color)
      {
            this.color = color;
            this.value = value;
            this.size = size;
      }
      public int getSize()
      {
            return this.size;
      }
      
      public String getValue()
      {
            return this.value;
      }
      
      public Color getColor()
      {
            return this.color;
      }
      public void paint(Graphics2D g, int y, int x)
    {
            g.setStroke(new BasicStroke(6.0f));
        g.setColor(Color.black);
        g.drawOval(x, y, size, size);
        g.setColor(color);
        g.fillOval(x, y, size-2, size-2);
        g.setColor(Color.black);
        g.drawString(this.value, x+(this.getSize()/2)-8, y+(this.getSize()/2)+2);
   }
}
ASKER CERTIFIED SOLUTION
Avatar of CPColin
CPColin
Flag of United States of America image

Link to home
membership
Create an account to see this answer
Signing up is free. No credit card required.
Create Account
Avatar of urobins
urobins

ASKER

thanks!