hi everyone

where did i go wrong with the {} please help.

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



         /* 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 */



     private 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 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




         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


469         /* reset & enable waiterJPanel components*/

470         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

Edited 3 Years Ago by mike_2000_17: Fixed formatting

problem is in the form, please edit your post, select whole Java Code, and select by mouse Code Tags button "[code]"

Edited 5 Years Ago by mKorbel: n/a

your constructors declaration, there is something missing. Any class that extends JFrame. The first line of code in the constructor of any class that extends
JFrame is super("Title of the Frame"). I didnt check the rest of ur code.

Edited 3 Years Ago by pritaeas: fixed formatting

This article has been dead for over six months. Start a new discussion instead.