Go4Expert

Go4Expert (http://www.go4expert.com/)
-   Meet and Greet (http://www.go4expert.com/community/meet-and-greet/)
-   -   Class intferface or enum expected (http://www.go4expert.com/community/class-intferface-enum-expected-t25777/)

durmgill 13May2011 16:11

Class intferface or enum expected
 
Hi everyone

I am a newcomer to java . The error Class , interface ,or enum expected keeps pop up all over the place and i can't fix it. Im wondering can evryone help me

This is the code

PLEASE HELP

Code:


import javax.swing.JFrame; // import JFrame class
import javax.swing.JLabel; // import JLabel class
import javax.swing.JPanel; // import JPanel class
import java.awt.Font; // import awt Font class
import javax.swing.border.Border; // import Border interface
import javax.swing.BorderFactory; // import BorderFactory class
import javax.swing.JTextField; // import JTextField class
import javax.swing.JComboBox; // import JComboBox class
import javax.swing.JButton; // import JButton class
import javax.swing.JOptionPane; // import JOptionPane class
import java.sql.*; // import ALL SQL package classes
import java.awt.event.WindowEvent; // import class WindowEvent
import java.awt.event.WindowAdapter; //import abstract class WindowAdapter
import java.util.List; // import List class
import java.util.ArrayList; // import ArrayList class
import java.awt.event.ItemListener; // import int. to listen for item events
import java.awt.event.ItemEvent; // indicates item selcted/deselected
import java.awt.event.ActionListener; // import int. to listen for action events
import java.awt.event.ActionEvent; // indicates action event occurred.
import java.text.DecimalFormat; // import class DecimalFormat
public class RestaurantBillCalculator1 extends JFrame
{
    private Connection myConnection = null;
    private Statement myStatement = null;
    private ResultSet myResultSet = null;
    private Font restaurantJLabelFont = new Font("SansSerif", Font.BOLD, 16);
    // create a new font for title label
    private Font restaurantMenuFont = new Font("SansSerif", Font.BOLD, 12);
    // create a new font for menu labels
    private List <String> billItems = new ArrayList<String>();
    // declare & initialise ArrayList billItems
    private final static double TAX_RATE = 0.10; // set generous tax rate
    private final JComboBox tableNumberJComboBox = new JComboBox();
    private final JTextField waiterNameJTextField = new JTextField();
    private JPanel waiterJPanel = new JPanel(); // JPanel for waiter info.
    private JPanel menuItemsJPanel = new JPanel(); // JPanel for menu items
    private JComboBox beverageJComboBox = new JComboBox();
    private JComboBox appetizerJComboBox = new JComboBox();
    private JComboBox mainCourseJComboBox = new JComboBox();
    private JComboBox dessertJComboBox = new JComboBox();
    private final JButton saveTableJButton = new JButton("Save Table");
 
    private DecimalFormat myFormat = new DecimalFormat( "0.00" );
    // decimal formatting object
    //** RestaurantBillCaculator constructor, note there is no "no-arg"
   
    RestaurantBillCalculator1(String dbDriver, String dbURL)
    {
        this.setResizable(false); // user cannot resize JFrame
        this.setLayout(null);
        /** set layout manager to null for JFrame so components can be
          * placed using absolute positioning */
        this.addWindowListener(
                new WindowAdapter()  // anonymous inner class
        {
            @Override
          public void windowClosing( WindowEvent event )
            {
              frameWindowClosing( event ); //invoke method
            }
            private void frameWindowClosing(WindowEvent event) {
            }
        } // end anonymous inner class
        ); // end addWindowListener
        /** Establish database driver & handle exceptions*/
        try
        {
            Class.forName(dbDriver); // call static method of class "Class"
            // and pass in URL of Database as argument
        }
        catch (ClassNotFoundException e) // catch ClassNotFoundException first!
        {
            JOptionPane.showMessageDialog(null, "Invalid database driver" +
                    " provided: " + e.getMessage()); // show error message box
            System.exit(0);
        }
        catch (Exception e) // catch general exception
        {
            System.err.println("Exception: " + e.getMessage()); // print error
        }
        /** Establish connection to database using URL parameter
        * & handle exceptions*/
        try
        {
            myConnection = DriverManager.getConnection(dbURL);
        }
        catch (SQLException e) // catch SQLException first!
        {
            JOptionPane.showMessageDialog(null, "Unable to locate " +
                    "database: " + e.getMessage()); // show error message box
            System.exit(0);
        }
        catch (Exception e) // catch general exception
        {
            System.err.println("Exception: " + e.getMessage()); // print error
        }
        /** obtain & display meta info about connection - data about data! */
        try
        {
            DatabaseMetaData meta = myConnection.getMetaData();
            // use meta object to obtain metadata about connection
            System.out.println("Database product type: "
                    + meta.getDatabaseProductName() +
                    " \nDatabase driver name: " + meta.getDriverName());
                    // print out connection information
        }
        catch (SQLException e)
        {
            System.err.println("Exception: " + e.getMessage()); // print error
        }
        catch (Exception e) // catch general exception
        {
            System.err.println("Exception: " + e.getMessage()); // print error
        }
        JLabel restaurantJLabel = new JLabel("Restaurant"); // JLabel with title
        restaurantJLabel.setFont(restaurantJLabelFont); // set JLabel font
        restaurantJLabel.setBounds(125, 25, 125, 20); // set x,y,width & height
        this.add(restaurantJLabel); // add JLabel
        waiterJPanel.setLayout(null); // set no layout manager to JPanel
        String waiterTitle = "Waiter information"; // title for border
        Border waiterInfoBorder = BorderFactory.
                createRaisedBevelBorder(); // create a raised bevel border
        waiterInfoBorder = BorderFactory.createTitledBorder
                (waiterInfoBorder, waiterTitle, 1,
                2, restaurantMenuFont); // create a titled border
        waiterJPanel.setBorder(waiterInfoBorder); // set JPanel border
        waiterJPanel.setBounds(45, 70, 300, 115); // set x,y, width & height
        JLabel tableNumberJLabel = new JLabel("Table number:"); // new JLabel
        tableNumberJLabel.setFont(restaurantMenuFont); // set JLabel font
        tableNumberJLabel.setBounds(30, 35, 125, 20); // set x,y,width & height
        waiterJPanel.add(tableNumberJLabel); // add JLabel to JPanel
        tableNumberJComboBox.setBounds(145, 35, 125, 20); // set bounds
        tableNumberJComboBox.setFont(restaurantMenuFont); // set font
        waiterJPanel.add(tableNumberJComboBox); // add to JPanel
        JLabel waiterNameJLabel = new JLabel("Waiter name:"); // new JLabel
        waiterNameJLabel.setFont(restaurantMenuFont); // set JLabel font
        waiterNameJLabel.setBounds(30, 75, 125, 20); // set x,y,width & height
        waiterJPanel.add(waiterNameJLabel); // add JLabel to JPanel
        waiterNameJTextField.setBounds(145, 75, 125, 20);
        waiterNameJTextField.setFont(restaurantMenuFont); // set font
        waiterJPanel.add(waiterNameJTextField);
        this.add(waiterJPanel);
        this.add(createMenuItemsJPanel()); // add waiterJPanel to current JFrame
        /* The following code initializes the first 4 indices of ArrayList
        * billItems to null, so that these indices can be set later in the
        * application. Indices are used to ensure a user can select only
        * ONE item per category.
            */
        billItems.add(0, null); // index 0 is reserved for beverage category
        billItems.add(1, null); // index 1 is reserved for appetizer category
        billItems.add(2, null); // index 2 is reserved for main course category
        billItems.add(3, null); // index 3 is reserved for dessert category
    }
    /** This method returns a JPanel object - menuItemsJPanel */
    JPanel createMenuItemsJPanel()
    {
        menuItemsJPanel.setLayout(null); // set no layout manager to JPanel
        String menuTitle = "Menu items"; // title for border
        Border menuItemsBorder = BorderFactory.
                createRaisedBevelBorder(); // create a raised bevel border
        menuItemsBorder = BorderFactory.createTitledBorder
                (menuItemsBorder, menuTitle, 1,
                2, restaurantMenuFont); // create a titled border
        menuItemsJPanel.setBorder(menuItemsBorder); // set JPanel border
        menuItemsJPanel.setBounds(45, 190, 300, 200); // set x,y, width & height
   
       
      JLabel beverageJLabel = new JLabel("Beverage:"); // new JLabel
        beverageJLabel.setFont(restaurantMenuFont); // set JLabel font
        beverageJLabel.setBounds(30, 35, 125, 20); // set x,y,width & height
        menuItemsJPanel.add(beverageJLabel); // add JLabel to JPanel
        beverageJComboBox.setBounds(145, 35, 125, 20); // set bounds
        beverageJComboBox.setFont(restaurantMenuFont); // set font
        beverageJComboBox.setEnabled(false); // disable by default
        loadCategory("Beverage", beverageJComboBox); // pass cat. & JCBox ref
        beverageJComboBox.addItemListener( new ItemListener());

            public void itemStateChanged(ItemEvent e) }
                   
 );
          //add Listener to JComboBox using anonymous inner class;
        {
            public void itemStateChanged( ItemEvent event )//State change method
            }
            }
                // Determine whether item in box selected
                if ( event.getStateChange() == ItemEvent.SELECTED );
                //    beverageJComboBoxItemStateChanged(event);
            } // end method itemStateChanged
        } );// end anonymous inner class
        menuItemsJPanel.add(beverageJComboBox); // add to JPanel

        JLabel appetizerJLabel = new JLabel("Appetizer:"); // new JLabel
        appetizerJLabel.setFont(restaurantMenuFont); // set JLabel font
        appetizerJLabel.setBounds(30, 75, 125, 20); // set x,y,width & height
        menuItemsJPanel.add(appetizerJLabel); // add JLabel to JPanel
        appetizerJComboBox.setBounds(145, 35, 125, 20); // set bounds
        appetizerJComboBox.setFont(restaurantMenuFont); // set font
        appetizerJComboBox.setEnabled(false); // disable by default
        loadCategory("Appetizer", appetizerJComboBox); // pass cat. & JCBox ref
        appetizerJComboBox.addItemListener( new ItemListener()
                // add Listener to JComboBox using anonymous inner class
        {
            public void itemStateChanged( ItemEvent event )//State change method
            {
                // Determine whether item in box selected
                if ( event.getStateChange() == ItemEvent.SELECTED );
                //  appetizerJComboBoxItemStateChanged(event);
            } // end method itemStateChanged
        } );// end anonymous inner class
        menuItemsJPanel.add(appetizerJComboBox);
          JLabel mainCourseJLabel = new JLabel("MainCourse:"); // new JLabel
        mainCourseJLabel.setFont(restaurantMenuFont); // set JLabel font
        mainCourseJLabel.setBounds(30, 115, 125, 20); // set x,y,width & height
        menuItemsJPanel.add(mainCourseJLabel); // add JLabel to JPanel
        mainCourseJComboBox.setBounds(145, 115, 125, 20); // set bounds
        mainCourseJComboBox.setFont(restaurantMenuFont); // set font
        mainCourseJComboBox.setEnabled(false); // disable by default
        loadCategory("MainCourse", mainCourseJComboBox); // pass cat. & JCBox ref
        mainCourseJComboBox.addItemListener( new ItemListener()
                // add Listener to JComboBox using anonymous inner class
        {
            public void itemStateChanged( ItemEvent event )//State change method
            {
                // Determine whether item in box selected
                if ( event.getStateChange() == ItemEvent.SELECTED );
           
            } // end method itemStateChanged
            private void ItemStateChanged(ItemEvent event) {
            }
        } );// end anonymous inner class
        menuItemsJPanel.add(dessertJComboBox); // add to JPanel
          JLabel dessertJLabel = new JLabel("Dessert:"); // new JLabel
        dessertJLabel.setFont(restaurantMenuFont); // set JLabel font
        dessertJLabel.setBounds(30, 155, 125, 20); // set x,y,width & height
        menuItemsJPanel.add(dessertJLabel); // add JLabel to JPanel
        dessertJComboBox.setBounds(145, 155, 125, 20); // set bounds
        dessertJComboBox.setFont(restaurantMenuFont); // set font
        dessertJComboBox.setEnabled(false); // disable by default
        loadCategory("Dessert", dessertJComboBox); // pass cat. & JCBox ref
        dessertJComboBox.addItemListener( new ItemListener()
                // add Listener to JComboBox using anonymous inner class
        {
            public void itemStateChanged( ItemEvent event )//State change method
            {
                // Determine whether item in box selected
                if ( event.getStateChange() == ItemEvent.SELECTED );
                //    dessertJComboBoxItemStateChanged(event);
            } // end method itemStateChanged
        } );// end anonymous inner class
        menuItemsJPanel.add(dessertJComboBox); // add to JPanel

        return(menuItemsJPanel); // return menuItemsJPanel
    }
    /** method that loads categories into respective JComboBoxs  it
    * receives a String and a JComboBox reference (which will point to
    * the respective JComboBox that invoked the method0 */
    void loadCategory(String beverage, JComboBox beverageJComboBox)
    {
        try
        {
            myStatement = myConnection.createStatement(); // create statement
            myResultSet = myStatement.executeQuery( "SELECT name FROM Menu " +
                    "WHERE category = '" + beverage+ "' ORDER BY NAME" );
            // executeQuery returns values of query
            while (myResultSet.next()) // loop through myResultSet
 
            {
                beverageJComboBox.addItem(myResultSet.getString("name"));
            }
        // end try
            {
        catch (SQLException e)
               
        {
            System.err.println(e.getMessage()); // show error message
        }
        catch (Exception e)
        {
            System.err.println(e.getMessage()); // show error message
            }

        void loadCategory (String appetizer, JComboBox appetizerJComboBox)
    {
        try
        {
     
            myStatement = myConnection.createStatement(); // create statement
            myResultSet = myStatement.executeQuery( "SELECT name FROM Menu " +
                    "WHERE category = '" + appetizer + "' ORDER BY NAME" );
            //executeQuery returns values of query
            while (myResultSet.next()) // loop through myResultSet
 
           
                appetizerJComboBox.addItem(myResultSet.getString("name"));
              } // end try
        catch (SQLException e)
        {
            System.err.println(e.getMessage()); // show error message
        }
        catch (Exception e)
        {
            System.err.println(e.getMessage()); // show error message
            }
           
      void loadCategory(String mainCourse = null , JComboBox    mainCourseJComboBox)
    {
        try
        {
            myStatement = myConnection.createStatement(); // create statement
            myResultSet = myStatement.executeQuery( "SELECT name FROM Menu " +
                    "WHERE category = '" + mainCourse + "' ORDER BY NAME" );
            // executeQuery returns values of query
            while (myResultSet.next()) // loop through myResultSet
 
            {
                mainCourseJComboBox.addItem(myResultSet.getString("name"));

            }
        } // end try
        catch (SQLException e)
        {
            System.err.println(e.getMessage()); // show error message
        }
        catch (Exception e)
        {
            System.err.println(e.getMessage()); // show error message
           
        }
        void loadCategory(String dessert, JComboBox dessertJComboBox)
    {
        try
        {
            myStatement = myConnection.createStatement(); // create statement
            myResultSet = myStatement.executeQuery( "SELECT name FROM Menu " +
                    "WHERE category = '" + dessert+ "' ORDER BY NAME" );
            // executeQuery returns values of query
            while (myResultSet.next()) // loop through myResultSet
 
            {
                dessertJComboBox.addItem(myResultSet.getString("name"));

}
        } // end try
        catch (SQLException e)
        {
            System.err.println(e.getMessage()); // show error message
        }
        catch (Exception e)
        {
            System.err.println(e.getMessage()); // show error message

        }
        double calculateSubtotal()
    {
        double sub = 0.00;
        double tax = 0.00;
        double total = 0.00;
        try
        {
            myStatement = myConnection.createStatement(); // create statement
            for (int i = 0; i <= 3; i++)
            {
                myResultSet = myStatement.executeQuery(
                        "SELECT price FROM Menu " +
                        "WHERE name = '" + billItems.get(i) + "'" );
                        // executeQuery returns values of query, i.e. prices
                while (myResultSet.next()) // loop through myResultSet
                {
                    sub += myResultSet.getDouble("price");
                    // add value to subTotal
                }
            }
            tax = sub*TAX_RATE; // establish tax amount
            taxJTextField.setText(myFormat.format(tax));
            // place tax amount in taxJTextField
            total = sub + tax; // total up!
            totalJTextField.setText(myFormat.format(total));
            // place total in totalJTextField
        } // end try
        catch (SQLException e)
        {
            System.err.println(e.getMessage()); // show error message
        }
        catch (Exception e)
        {
            System.err.println(e.getMessage()); // show error message
        }
        finally
        {
            try
            {
                myResultSet.close();
                // close result set
            }
            catch (SQLException e)
            {
                System.err.println(e.getMessage()); // show error message
            }
            catch (Exception e)
            {
                System.err.println(e.getMessage()); // show error message
            }
        } // end finally
        return sub;
 

        beverageJComboBox.setSelectedIndex(0); // reset JCBox
        beverageJComboBox.setEnabled(false); // disable JCBox
        appetizerJComboBox.setSelectedIndex(0); // reset JCBox
        appetizerJComboBox.setEnabled(false); // disable JCBox
        mainCourseJComboBox.setSelectedIndex(0); // reset JCBox
        mainCourseJComboBox.setEnabled(false); // disable JCBox
        dessertJComboBox.setSelectedIndex(0); // reset JCBox
        dessertJComboBox.setEnabled(false); // disable JCBox
        /* reset & enable waiterJPanel components*/
        tableNumberJComboBox.setSelectedIndex(0); // reset JCBox
        tableNumberJComboBox.setEnabled(true); // enable JCBox
        waiterNameJTextField.setText(""); // clear text
        waiterNameJTextField.setEnabled(true); // enable JTF
   
        }
    /** override close operation in this method so that I can close
    * connections & statements when user closes JFrame */
    void frameWindowClosing(WindowEvent event)
    {
        try //try to close myStatement & myConnection
        {
            myStatement.close();
            myConnection.close();
        }
        catch(Exception e)
        {
            System.err.println(e.getMessage()); // show error
        }
        finally
        {
            System.exit(0); // exit application
        }
   
       
    public static void main(String[] args)
    {
        String databaseDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
        // initialize to use Access DB by default
        String databaseURL = "jdbc:odbc:JAVA_ACCESS";
        // initialize to use Access DB by default
        if (args.length != 0) // check if arguments passed at command line
        {
            if (args.length < 2) // if there are not exactly two args.
            {
                System.out.println("Two arguments required " +
                        "for non-Access Database connection. Attempting " +
                        "to connect to Access Database instead...");
                // display message
            }
            else if (args.length >= 2) // if there are two args.
            {
                databaseDriver = args[0]; // databaseDriver = first arg
                databaseURL = args[1]; // databaseURL = second arg
            }
        }
        RestaurantBillCalculator1 bill =
                new RestaurantBillCalculator1(databaseDriver, databaseURL);
        /** new RestaurantBillCalculator instance, pass in null values of
        * databaseDriver and databaseURL if args.length is 0.
        * I check these values in the constructor for this class to determine
        * which DBMS to use */
        bill.setTitle("Restaurant Bill Calculator");
        // set RestaurantBillCalculator title
        bill.setSize(400, 615); // set RestaurantBillCalculator title
        bill.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // exit program on RestaurantBillCalculator close
        bill.setVisible(true); // show RestaurantBillCalculator
    } // end of main
} // end of class RestaurantBillCalculator



All times are GMT +5.5. The time now is 14:14.