StephNicolaou 32 Posting Whiz in Training

There isn't exactly anything wrong with my code, it's fine although the order isn't correct, I think, which makes my shapes appear behind the center panel. I'm not sure how to correct this as I've drawn my shapes under a paint method.

I've tried moving the paint method before and after the initialising method and repainted in either methods but it will then present only one or the other; the combos/txts, etc or the shapes.

So at the moment I've positioned the shape method after the initialising method and have not repainted in neither methods. The shapes will only appear if I resize the applet, why is that?

-Sorry about all of the comments and thanks to anyone that helps

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

import javax.swing.*;
import javax.swing.JApplet;
import javax.swing.JComboBox;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JPanel;

public class cinemabooking extends JApplet implements ActionListener, MouseListener
{
    //Variables


    JComboBox cboSeats;
    JComboBox cboTimes;
    JComboBox cboAge;

    JLabel lblTitle;
    JLabel lblSeats;
    JLabel lblTimes;
    JLabel lblAge;
    JLabel lblNoPeople;
    JLabel lblTotalCost;

    JLabel lblCenter;
    JLabel lblEast;
    JLabel lblWest;

    JTextField txtNoPeople;
    JTextField txtTotalCost;

    //Rectangle properties
    int rx = 120; //x position
    int ry = 100; //y position
    int rh = 30; //height
    int rw = 50; //width

    int x;
    int y;

    JPanel mainNorthPanel;
    JPanel eastPanel;
    JPanel southPanel;
    JPanel westPanel;
    JPanel centerPanel;
    JPanel row1;
    JPanel row2;

    public void init()
    {

        setSize(900,600);

        //Initialise Panels
               this.setLayout (new BorderLayout());

        //Initialise Combo Boxes

        //Seats Combo Boxes
        cboSeats = new JComboBox();
        String[] seatStrings = {"Left Block", "Middle Block", "Right Block"};

        for (int index = 0; index < seatStrings.length; index++)
        cboSeats.addItem(seatStrings[index]);

        //Times Combo Box
        cboTimes = new JComboBox();
        String[] timeStrings = {"1:00", "15:00", "17:00", "19:00", "21:00"};

        for (int index = 0; index < timeStrings.length; index++)
        cboTimes.addItem(timeStrings[index]);

        //Age Combo Box
        cboAge = new JComboBox();
        String[] ageStrings = {"Adult", "Child", "OAP"};

        for (int index = 0; index < ageStrings.length; index++)
        cboAge.addItem(ageStrings[index]);

        //Initialise labels
        lblSeats = new JLabel("  Seat Block:");
        lblTimes = new JLabel("  Times Available:");
        lblAge = new JLabel("  Age:");
        lblTitle = new JLabel("Cinema Booking");

        lblNoPeople = new JLabel("  No of People:");
        lblTotalCost = new JLabel("  Total Cost:");

        lblEast= new JLabel("e:");
        lblWest = new JLabel("w:");
        lblCenter = new JLabel("cdgfasdgas:");

       //Initialise Text boxes
       txtNoPeople = new JTextField(15);
       txtTotalCost = new JTextField(15);

//NORTH PANEL
               mainNorthPanel = new JPanel();
               mainNorthPanel.setLayout (new BorderLayout());

                add(lblTitle, BorderLayout.NORTH);
                add(lblAge, BorderLayout.NORTH);
                add(lblSeats, BorderLayout.NORTH);
                add(lblTimes, BorderLayout.NORTH); //Add labels

                add(cboSeats, BorderLayout.NORTH);
                add(cboAge, BorderLayout.NORTH);
                add(cboTimes, BorderLayout.NORTH); //Add combo boxes

                row1 = new JPanel();
                row2 = new JPanel();

                row1.add(lblTitle);
                row2.add(lblSeats);
                row2.add(cboSeats);
                row2.add(lblTimes);
                row2.add(cboTimes);
                row2.add(lblAge);
                row2.add(cboAge);

                mainNorthPanel.add(row1, BorderLayout.NORTH);
                mainNorthPanel.add(row2, BorderLayout.SOUTH);

                add(mainNorthPanel, BorderLayout.NORTH);

                //EAST PANEL
                eastPanel = new JPanel();
                eastPanel.setLayout (new BorderLayout());

                add(lblEast, BorderLayout.EAST);
                add(eastPanel, BorderLayout.EAST);

                eastPanel.add(lblEast);

               //WEST PANEL
               westPanel = new JPanel();
               westPanel.setLayout (new BorderLayout());

                add(lblWest,BorderLayout.WEST);

                westPanel.add(lblWest);

                add(westPanel, BorderLayout.WEST);

                //SOUTH PANEL
                southPanel = new JPanel();
                southPanel.setLayout (new GridLayout(1,4));

                add(lblNoPeople,BorderLayout.SOUTH);
                add(lblTotalCost, BorderLayout.SOUTH);
                add(txtNoPeople, BorderLayout.SOUTH);
                add(txtTotalCost, BorderLayout.SOUTH);

                southPanel.add(lblTotalCost);
                southPanel.add(txtTotalCost);
                southPanel.add(lblNoPeople);
                southPanel.add(txtNoPeople);

                add(southPanel, BorderLayout.SOUTH);

                //CENTER PANEL

                centerPanel = new JPanel();
                centerPanel.setLayout (new BorderLayout());

                add(lblCenter,BorderLayout.CENTER);

                centerPanel.add(lblCenter);
                add(centerPanel, BorderLayout.CENTER);
                this.addMouseListener(this);

               validate();

        //repaint();


}

       public void paint (Graphics graf)
       {

              Shape[][] rect = new Shape[4][6];


              for(int i = 0; i < rect.length; i++) // i = row
              {
                  for(int j = 0; j < rect[0].length; j++) // j = column
                  {

                      //if (centerPanel!= null)
                      //{
                          //System.out.println (centerPanel.getX());
                          //get center of centerpanel + the width divided by 2 of center panel (making grid start position from center)
                          //so minus half of the grid to make in center of panel and get the position of grid
                          graf.drawRect(rx, ry, rw * i, rh * j);
                          //((centerPanel.getX()+((centerPanel.getWidth()/2)-((rw/2) * rect.length)) + rx), ((centerPanel.getY()+((centerPanel.getHeight()/2)-((rh/2) * rect[0].length)) + ry)), (rw * i), (rh * j));

                      //}
                  }
              }

             // if(  (x <= rw*(i+1)) && (x > rw*(i)) )
              // {
              //   if(  (y <= rh*(j+1)) && (y > rh*(j)) )
              //    {
              //        g.fillRect(i*rw, j*rh, rw, rh);
              //    }
              // }
//repaint();


                      Shape[][] rect2 = new Shape[6][5];


                      for(int i = 0; i < rect2.length; i++) // i = row
                      {
                          for(int j = 0; j < rect2[0].length; j++) // j = column
                          {

                              //if (centerPanel!= null)
                              //{
                                  //System.out.println (centerPanel.getX());
                                  //get center of centerpanel + the width divided by 2 of center panel (making grid start position from center)
                                  //so minus half of the grid to make in center of panel and get the position of grid
                                  graf.drawRect(rx+200, ry, rw * i, rh * j);
                                  //((centerPanel.getX()+((centerPanel.getWidth()/2)-((rw/2) * rect2.length)) + rx), ((centerPanel.getY()+((centerPanel.getHeight()/2)-((rh/2) * rect2[0].length)) + ry)), (rw * i), (rh * j));

                              //}
                          }
                      }

                     // if(  (x <= rw*(i+1)) && (x > rw*(i)) )
                      // {
                      //   if(  (y <= rh*(j+1)) && (y > rh*(j)) )
                      //    {
                      //        g.fillRect(i*rw, j*rh, rw, rh);
                      //    }
                      // }
        //repaint();

                      Shape[][] rect3 = new Shape[4][6];


                      for(int i = 0; i < rect3.length; i++) // i = row
                      {
                          for(int j = 0; j < rect3[0].length; j++) // j = column
                          {

                              //if (centerPanel!= null)
                              //{
                                  //System.out.println (centerPanel.getX());
                                  //get center of centerpanel + the width divided by 2 of center panel (making grid start position from center)
                                  //so minus half of the grid to make in center of panel and get the position of grid
                                  graf.drawRect(rx+500, ry, rw * i, rh * j);
                                  //((centerPanel.getX()+((centerPanel.getWidth()/2)-((rw/2) * rect2.length)) + rx), ((centerPanel.getY()+((centerPanel.getHeight()/2)-((rh/2) * rect2[0].length)) + ry)), (rw * i), (rh * j));

                              //}
                          }
                      }

                     // if(  (x <= rw*(i+1)) && (x > rw*(i)) )
                      // {
                      //   if(  (y <= rh*(j+1)) && (y > rh*(j)) )
                      //    {
                      //        g.fillRect(i*rw, j*rh, rw, rh);
                      //    }
                      // }
        //repaint();

        }


    public void mouseClicked(MouseEvent e)
    {
        x = e.getX();
        y = e.getY();
    }

    public void mouseExited(MouseEvent e)
    {

        }

    public void mouseEntered(MouseEvent e)
    {

        }

    public void mouseDragged(MouseEvent e)
    {

        }

    public void actionPerformed (ActionEvent ev)
    {

        }

    public void mouseReleased(MouseEvent e)
    {

        }

    public void mousePressed(MouseEvent e)
    {

    }

}

Cleo