Programming Forums

Programming Forums (http://www.programmingforums.org/forumindex.php)
-   Java (http://www.programmingforums.org/forum17.html)
-   -   Java Error Messages (http://www.programmingforums.org/showthread.php?t=15738)

kewlgeye Apr 30th, 2008 3:33 PM

Java Error Messages
 
1 Attachment(s)
I received an error. I have posted a pic of the errors that I am receiving. Can someone please have a look at this and show me what I am doing wrong? Here is the code and then the pic.

:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class StaffingProgram extends JFrame
{
        private JLabel resultAL, resultBL, resultCL, outputAL, outputBL, outputCL;
        private JTextField resultATF, resultBTF, resultCTF, outputATF, outputBTF, outputCTF;
        private JButton calculateB, exitB;
        private CalculateButtonHandler cbHandler;
        private ExitButtonHandler ebHandler;
       

        private static final int WIDTH = 900;
        private static final int HEIGHT = 600;

        public StaffingProgram()
        {
       
               
                resultAL = new JLabel("Please enter the number of employees presently on duty at location A: ",
                        SwingConstants.RIGHT);
                resultBL = new JLabel("Please enter the number of employees presently on duty at location B: ",
                        SwingConstants.RIGHT);
                resultCL = new JLabel("Please enter the number of employees presently on duty at location C: ",
                        SwingConstants.RIGHT);
                outputAL = new JLabel("Number of employees under or over for location A: ",
                        SwingConstants.RIGHT);
                outputBL = new JLabel("Number of employees under or over for location B: ",
                        SwingConstants.RIGHT);
                outputCL = new JLabel("Number of employees under or over for location C: ",
                        SwingConstants.RIGHT);
               
               
               
               
               
               
                resultATF = new JTextField(10);
                resultBTF = new JTextField(10);
                resultCTF = new JTextField(10);
                outputATF = new JTextField(10);
                outputBTF = new JTextField(10);
                outputCTF = new JTextField(10);
               
               
               

                calculateB = new JButton("Calculate");
                cbHandler = new CalculateButtonHandler();
                calculateB.addActionListener(cbHandler);

                exitB = new JButton("Exit");
                ebHandler = new ExitButtonHandler();
                exitB.addActionListener(ebHandler);
               

                setTitle("Staffing Level Calculations");

                Container pane = getContentPane();

                pane.setLayout(new GridLayout(7, 2));

               
                pane.add(resultAL);
                pane.add(resultATF);
                pane.add(resultBL);
                pane.add(resultBTF);
                pane.add(resultCL);
                pane.add(resultCTF);
                pane.add(outputAL);
                pane.add(outputATF);
                pane.add(outputBL);
                pane.add(outputBTF);
                pane.add(outputCL);
                pane.add(outputCTF);
                pane.add(calculateB);
                pane.add(exitB);

                setSize(WIDTH, HEIGHT);
                setVisible(true);
                setDefaultCloseOperation(EXIT_ON_CLOSE);
        }

        private class CalculateButtonHandler implements ActionListener
        {
                public void actionPerformed(ActionEvent e)
                {
                        double resulta, resultb, resultc;
                       
                       
                        resulta = Double.parseDouble(resultATF.getText());
                        resultb = Double.parseDouble(resultBTF.getText());
                        resultc = Double.parseDouble(resultCTF.getText());
                       
        try
        {
                        if (resulta > 5)
                        {resulta = resulta - 5;
                        outputATF.setText("You are overstaffed by " + resulta);}
                        if (resulta < 5)
                        {resulta = 5 - resulta;
                        outputATF.setText("You are understaffed by " + resulta);}
                        if (resulta == 5)
                        {outputATF.setText("Your staffing is sufficient");}
       
                        else
                        {
                        throw new TheException(); //calls
                            }
               
               

                        if (resultb > 8)
                        {resultb = resultb - 8;
                        outputBTF.setText("You are overstaffed by " + resultb);
                        if (resultb < 8)
                        resultb = 8 - resultb;
                        outputBTF.setText("You are understaffed by " + resultb);
                        if (resultb == 8)
                        outputBTF.setText("Your staffing is sufficient");
                       
                        else
                        {
                        throw new TheException(); //calls
                            }       
                       

                        if (resultc > 10)
                        {resultc = resultc - 10;
                        outputCTF.setText("You are overstaffed by " + resultc);}
                        if (resultc < 10)
                        {resultc = 10 - resultc;
                        outputCTF.setText("You are understaffed by " + resultc);}
                        if (resultc == 10)
                        {outputCTF.setText("Your staffing is sufficient");}

                        else
                        {
                        throw new TheException(); //calls
                            }
        }
}
        catch (TheException e)
        {
            System.out.println("Illegal input caught, please enter a number");
        }

        System.out.println();
        System.out.println("Program Ending!");
        }
        }
}

        private class ExitButtonHandler implements ActionListener
        {
                public void actionPerformed(ActionEvent e)
                {
                        System.exit(0);
                }
        }
       
        public static void main(String[] args) throws IOException
        {
                StaffingProgram rectObject = new StaffingProgram();
        }
}


Ezzaral Apr 30th, 2008 4:16 PM

Re: Java Error Messages
 
ExitButtonHandler and main() are defined outside of your class body. Check your braces. You also have a missing brace on this if() block and no block at all on the (resultb < 8) statement
:

        if (resultb > 8)
        {resultb = resultb - 8;

. Attention to indentation and blocking standards will go a long way towards preventing these kinds of errors
:

        if (resultb > 8){
            resultb = resultb - 8;
            outputBTF.setText("You are overstaffed by " + resultb);
        }
        if (resultb < 8){
            resultb = 8 - resultb;
            outputBTF.setText("You are understaffed by " + resultb);
        }
        if (resultb == 8) {
            outputBTF.setText("Your staffing is sufficient");
        }


kewlgeye May 1st, 2008 1:51 PM

Re: Java Error Messages
 
1 Attachment(s)
Ok, I fixed my brackets, and also had to give the event the ev name instead of"e" because it was already being used. I imported the import java.io.* statement and added the class extends section of the code.

I still have an error, when I enter the numbers in. I receive the catch message, and I shouldn't because I am entering a number. Whats wrong? I attached a picture. I am happy though that I can at least see my program now. :) Have a look please.

:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class StaffingProgram extends JFrame
{
        private JLabel resultAL, resultBL, resultCL, outputAL, outputBL, outputCL;
        private JTextField resultATF, resultBTF, resultCTF, outputATF, outputBTF, outputCTF;
        private JButton calculateB, exitB;
        private CalculateButtonHandler cbHandler;
        private ExitButtonHandler ebHandler;
       

        private static final int WIDTH = 900;
        private static final int HEIGHT = 600;

        public StaffingProgram()
        {
       
               
                resultAL = new JLabel("Please enter the number of employees presently on duty at location A: ",
                        SwingConstants.RIGHT);
                resultBL = new JLabel("Please enter the number of employees presently on duty at location B: ",
                        SwingConstants.RIGHT);
                resultCL = new JLabel("Please enter the number of employees presently on duty at location C: ",
                        SwingConstants.RIGHT);
                outputAL = new JLabel("Number of employees under or over for location A: ",
                        SwingConstants.RIGHT);
                outputBL = new JLabel("Number of employees under or over for location B: ",
                        SwingConstants.RIGHT);
                outputCL = new JLabel("Number of employees under or over for location C: ",
                        SwingConstants.RIGHT);
               
               
               
               
               
               
                resultATF = new JTextField(10);
                resultBTF = new JTextField(10);
                resultCTF = new JTextField(10);
                outputATF = new JTextField(10);
                outputBTF = new JTextField(10);
                outputCTF = new JTextField(10);
               
               
               

                calculateB = new JButton("Calculate");
                cbHandler = new CalculateButtonHandler();
                calculateB.addActionListener(cbHandler);

                exitB = new JButton("Exit");
                ebHandler = new ExitButtonHandler();
                exitB.addActionListener(ebHandler);
               

                setTitle("Staffing Level Calculations");

                Container pane = getContentPane();

                pane.setLayout(new GridLayout(7, 2));

               
                pane.add(resultAL);
                pane.add(resultATF);
                pane.add(resultBL);
                pane.add(resultBTF);
                pane.add(resultCL);
                pane.add(resultCTF);
                pane.add(outputAL);
                pane.add(outputATF);
                pane.add(outputBL);
                pane.add(outputBTF);
                pane.add(outputCL);
                pane.add(outputCTF);
                pane.add(calculateB);
                pane.add(exitB);

                setSize(WIDTH, HEIGHT);
                setVisible(true);
                setDefaultCloseOperation(EXIT_ON_CLOSE);
        }

        private class CalculateButtonHandler implements ActionListener
        {
                public void actionPerformed(ActionEvent e)
                {
                        double resulta, resultb, resultc;
                       
                       
                        resulta = Double.parseDouble(resultATF.getText());
                        resultb = Double.parseDouble(resultBTF.getText());
                        resultc = Double.parseDouble(resultCTF.getText());
                       
        try
        {
                        if (resulta > 5)
                        {resulta = resulta - 5;
                        outputATF.setText("You are overstaffed by " + resulta);}
                        if (resulta < 5)
                        {resulta = 5 - resulta;
                        outputATF.setText("You are understaffed by " + resulta);}
                        if (resulta == 5)
                        {outputATF.setText("Your staffing is sufficient");}
                       
                       
                        if (resultb > 8){
                        resultb = resultb - 8;
                        outputBTF.setText("You are overstaffed by " + resultb);
                        }
                        if (resultb < 8){
                        resultb = 8 - resultb;
                        outputBTF.setText("You are understaffed by " + resultb);
                        }
                        if (resultb == 8){
                        outputBTF.setText("Your staffing is sufficient");
                        }
                       
                                               

                        if (resultc > 10){
                        resultc = resultc - 10;
                        outputCTF.setText("You are overstaffed by " + resultc);
                        }
                        if (resultc < 10){
                        resultc = 10 - resultc;
                        outputCTF.setText("You are understaffed by " + resultc);
                        }
                        if (resultc == 10){
                        outputCTF.setText("Your staffing is sufficient");
                        }

                        else
                        {
                        throw new TheException(); //calls
                            }
        }
                        catch (TheException ev)
                        {
                            outputATF.setText("" +ev + " You must enter a number");
                              }

                }
        }


class TheException extends Exception
{
        public String toString()
        {
                return "Illegal";
        }
}



        private class ExitButtonHandler implements ActionListener
        {
                public void actionPerformed(ActionEvent e)
                {
                        System.exit(0);
                }
        }
       
        public static void main(String[] args) throws IOException
        {
                StaffingProgram rectObject = new StaffingProgram();
        }
}


attached picture

Ezzaral May 1st, 2008 2:38 PM

Re: Java Error Messages
 
This section is going to throw your exception if resultc is not equal to 10. I doubt that is the intent
:

                        if (resultc == 10){
                        outputCTF.setText("Your staffing is sufficient");
                        }

                        else
                        {
                        throw new TheException(); //calls
                            }


kewlgeye May 1st, 2008 5:41 PM

Re: Java Error Messages
 
Quote:

Originally Posted by Ezzaral (Post 144648)
This section is going to throw your exception if resultc is not equal to 10. I doubt that is the intent
:

                        if (resultc == 10){
                        outputCTF.setText("Your staffing is sufficient");
                        }

                        else
                        {
                        throw new TheException(); //calls
                            }



This isn't my intent. What I am trying to do is perform the calculations based on my if statements, and if anything else is entered like a ., a letter, or anything besides a number, it should be caught and display the sentence in the outputbox "Illegal entry, please enter a number"

Any ideas?

Freaky Chris May 2nd, 2008 1:48 AM

Re: Java Error Messages
 
instead of using all if statements you use elseif?
and then leave your else statement at the end.

Chris

kewlgeye May 2nd, 2008 8:39 AM

Re: Java Error Messages
 
I figured it out.

I needed to use the NumberFormatException and delete the extends section and also parse within the try statement to have something to try with. Here is what I did.

:

try
        {
                        resulta = Integer.parseInt(resultATF.getText());
                        resultb = Integer.parseInt(resultBTF.getText());
                        resultc = Integer.parseInt(resultCTF.getText());
                       
                        if (resulta > 5){
                        resulta = resulta - 5;
                        outputATF.setText("You are overstaffed by " + resulta);
                        }
                        else if (resulta < 5){
                        resulta = 5 - resulta;
                        outputATF.setText("You are understaffed by " + resulta);
                        }
                        else if (resulta == 5){
                        outputATF.setText("Your staffing is sufficient");
                        }
                       
                       
                        if (resultb > 8){
                        resultb = resultb - 8;
                        outputBTF.setText("You are overstaffed by " + resultb);
                        }
                        else if (resultb < 8){
                        resultb = 8 - resultb;
                        outputBTF.setText("You are understaffed by " + resultb);
                        }
                        else if (resultb == 8){
                        outputBTF.setText("Your staffing is sufficient");
                        }
                       
                                               

                        if (resultc > 10){
                        resultc = resultc - 10;
                        outputCTF.setText("You are overstaffed by " + resultc);
                        }
                        else if (resultc < 10){
                        resultc = 10 - resultc;
                        outputCTF.setText("You are understaffed by " + resultc);
                        }
                        else if (resultc == 10){
                        outputCTF.setText("Your staffing is sufficient");
                        }

                        else
                        {
                        throw new NumberFormatException(); //calls
                            }
        }
                        catch (NumberFormatException ev)
                        {
                        JOptionPane.showMessageDialog(null, "" +ev + " You must enter a number", "Invalid Input",               

                        JOptionPane.INFORMATION_MESSAGE);
                              }


Ezzaral May 2nd, 2008 1:49 PM

Re: Java Error Messages
 
Your try-catch on NumberFormatException really only needs to be around this portion
:

                        resulta = Integer.parseInt(resultATF.getText());
                        resultb = Integer.parseInt(resultBTF.getText());
                        resultc = Integer.parseInt(resultCTF.getText());

because that is where the string values are converted to ints. The rest of the code merely operates on those int values and really has no bearing on NumberFormatException. It certainly doesn't need to throw one explicitly.


All times are GMT -5. The time now is 12:46 AM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC