Introduction of the Project
In this coding project, we will create a Stadium Seat Booking System In Java that will book a seat for the user on the selected date. To implement this java project, we will apply a logic to assign a random seat number & keep track of seats booked. SQL database will be implemented to store information related to the booking, and the Swing module will enhance the user interface.
Objectives
- We have to apply a seat booking logic that provides a seat number & keeps track of seats available.
- Make the user interface more interactive with the Swing module.
Requirements
- Java Compiler IDE
- Swing module
Source Code
package com.company; import java.util.Random; public class Main { public static void main(String[] args) { new MainGUI(); } } package com.company; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class MainGUI { private JPanel mainPanel; private JButton NORMALButton; private JButton RINGSIDEButton; private JButton ENDSTANDSButton; JFrame mainframe = new JFrame(); public MainGUI(){ mainframe.setDefaultCloseOperation(mainframe.EXIT_ON_CLOSE); mainframe.setContentPane(mainPanel); mainframe.pack(); mainframe.setLocationRelativeTo(null); mainframe.setVisible(true); NORMALButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { mainframe.dispose(); new Normal(); } }); RINGSIDEButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { mainframe.dispose(); new RingSide(); } }); ENDSTANDSButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { mainframe.dispose(); new EndStands(); } }); } } package com.company; import com.toedter.calendar.JDateChooser; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.DateFormat; import java.util.Random; public class Normal { private JPanel normal; private JButton BOOKNOWButton; private JButton HOMEButton; private JPanel datePanel; private JLabel seats2; private static int a =100; JDateChooser dateChooser = new JDateChooser(); JFrame normalF = new JFrame(); public Normal(){ normalF.setDefaultCloseOperation(normalF.EXIT_ON_CLOSE); normalF.setContentPane(normal); normalF.pack(); normalF.setLocationRelativeTo(null); normalF.setVisible(true); datePanel.add(dateChooser); seats2.setText(String.valueOf(a)); HOMEButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { normalF.dispose(); new MainGUI(); } }); BOOKNOWButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if(dateChooser.getDate()==null){ JOptionPane.showMessageDialog(null,"PLEASE CHOOSE A DATE"); }else { String strDate = DateFormat.getDateInstance().format(dateChooser.getDate()); JOptionPane.showMessageDialog(null, "TICKETS BOOKED SUCCESSFULLY!"); JOptionPane.showMessageDialog(null, "MATCH IS ON: " + strDate + " & YOUR SEAT NO IS: " + seatNo()); a--; String a1 = String.valueOf(a); seats2.setText(a1); } } }); } public String seatNo(){ Random random = new Random(); int a = random.nextInt(100); return String.valueOf(a); } } package com.company; import com.toedter.calendar.JDateChooser; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.DateFormat; import java.util.Random; public class EndStands { private JPanel endStand; private JButton HOMEButton; private JButton BOOKNOWButton; private JPanel endDate; private JLabel seats1; private static int a=100; JFrame endF = new JFrame(); JDateChooser endDate1 = new JDateChooser(); public EndStands() { endF.setDefaultCloseOperation(endF.EXIT_ON_CLOSE); endF.setContentPane(this.endStand); endF.pack(); endF.setLocationRelativeTo(null); endF.setVisible(true); endDate.add(endDate1); seats1.setText(String.valueOf(a)); HOMEButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { endF.dispose(); new MainGUI(); } }); BOOKNOWButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if(endDate1.getDate()==null){ JOptionPane.showMessageDialog(null,"PLEASE CHOOSE A DATE"); }else { String strDate = DateFormat.getDateInstance().format(endDate1.getDate()); JOptionPane.showMessageDialog(null, "TICKETS BOOKED SUCCESSFULLY!"); JOptionPane.showMessageDialog(null, "MATCH IS ON: " + strDate + " & YOUR SEAT NO IS: " + seatNo()); a--; String a1 = String.valueOf(a); seats1.setText(a1); } } }); } public String seatNo(){ Random random = new Random(); int a = random.nextInt(100); return String.valueOf(a); } } package com.company; import com.toedter.calendar.JDateChooser; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.DateFormat; import java.util.Random; public class RingSide { private JPanel ringSide; private JButton HOMEButton; private JButton BOOKNOWButton; private JPanel ringdate; private JLabel seats; private static int a =100; JFrame ringF = new JFrame(); JDateChooser ringDate = new JDateChooser(); public RingSide() { ringF.setDefaultCloseOperation(ringF.EXIT_ON_CLOSE); ringF.setContentPane(ringSide); ringF.pack(); ringF.setLocationRelativeTo(null); ringF.setVisible(true); ringdate.add(ringDate); seats.setText(String.valueOf(a)); HOMEButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { ringF.dispose(); new MainGUI(); } }); BOOKNOWButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if(ringDate.getDate()==null){ JOptionPane.showMessageDialog(null,"PLEASE CHOOSE A DATE "); } String strDate = DateFormat.getDateInstance().format(ringDate.getDate()); JOptionPane.showMessageDialog(null,"TICKETS BOOKED SUCCESSFULLY!"); JOptionPane.showMessageDialog(null,"MATCH IS ON: "+strDate+" & YOUR SEAT NO IS: "+seatNo()); a--; String a1 = String.valueOf(a); seats.setText(a1); } }); } public String seatNo(){ Random random = new Random(); int a = random.nextInt(100); return String.valueOf(a); } }
Explanation of the Code
Firstly GUI:
1. The main page consists of 3 buttons named Normal, End stands & Ringside, which will redirect to respective screens.
2. Each screen consists of 3 JLablels with seats available, Fare & Date of Game information. It has 2 buttons, one for redirecting to the main page and the other for booking a seat.
3. It also has a Jcalendar to select the date of the game.
Moving to the seat booking, we will apply the following rules:
1. Generate a random number between the range 1 to 100; that will be our seat number.
2. Showing popup with confirmation of seat booking.
3. Finally, updating the seats available on the home screen.
Output
Main Interface
Normal Seat Interface
Ringside Seat Interface
End Stand Seat Interface
Conclusion
We have implemented this tutorial of a Stadium Seat Booking System In Java that helps to book a seat for a game on a particular day using the Swing module. This is a very quick way to get your seats booked for a game you don’t want to miss out on!

Cisco Ramon is an American software engineer who has experience in several popular and commercially successful programming languages and development tools. He has been writing content since last 5 years. He is a Senior Manager at Rude Labs Pvt. Ltd.
0 Comments