0% found this document useful (0 votes)
22 views27 pages

Import Javax

The document is a Java Swing application for managing gym memberships, featuring a graphical user interface (GUI) that allows users to add, activate, deactivate, and display gym members. It includes various input fields for member details such as ID, name, location, and membership type (regular or premium), along with buttons for actions like saving to a file and marking attendance. The application utilizes an ArrayList to store member information and handles user interactions through action listeners.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views27 pages

Import Javax

The document is a Java Swing application for managing gym memberships, featuring a graphical user interface (GUI) that allows users to add, activate, deactivate, and display gym members. It includes various input fields for member details such as ID, name, location, and membership type (regular or premium), along with buttons for actions like saving to a file and marking attendance. The application utilizes an ArrayList to store member information and handles user interactions through action listeners.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 27

import javax.swing.

*;

import java.awt.*;

import java.awt.event.*;

import java.util.ArrayList;

import java.io.*;

public class GymGUI extends JFrame implements ActionListener {

private ArrayList<GymMember> memberList;

// Main components

private JPanel mainPanel;

// Input fields

private JTextField tfId, tfName, tfLocation, tfPhone, tfEmail;

private JTextField tfReferralSource, tfRemovalReason, tfTrainerName, tfPaidAmount;

private JComboBox<String> dobYearComboBox, dobMonthComboBox, dobDayComboBox;

private JComboBox<String> msYearComboBox, msMonthComboBox, msDayComboBox;

private JComboBox<String> planComboBox;

private JRadioButton rbMale, rbFemale;

private ButtonGroup genderGroup;

// Display area

private JTextArea displayArea;

// Buttons

private JButton btnAddRegular, btnAddPremium, btnActivate, btnDeactivate;

private JButton btnMarkAttendance, btnUpgradePlan, btnCalculateDiscount;

private JButton btnRevertRegular, btnRevertPremium, btnDisplay, btnClear;

private JButton btnSaveToFile, btnReadFromFile;


public GymGUI() {

// Initialize member list

memberList = new ArrayList<>();

// Set up main frame

setTitle("Gym Membership Management System");

setSize(900, 700);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// Create main panel

mainPanel = new JPanel();

mainPanel.setLayout(null);

mainPanel.setBackground(new Color(240, 240, 240));

// Create input fields

createInputFields();

// Create display area

createDisplayArea();

// Create buttons

createButtons();

// Add components to main panel

addComponents();

// Add main panel to frame

add(mainPanel);
setVisible(true);

private void createInputFields() {

// Common fields

JLabel labelId = new JLabel("Member ID:");

labelId.setBounds(20, 20, 150, 20);

mainPanel.add(labelId);

tfId = new JTextField();

tfId.setBounds(180, 20, 200, 20);

mainPanel.add(tfId);

// Add other common fields (name, location, phone, email) similarly...

JLabel labelName = new JLabel("Name:");

labelName.setBounds(20, 50, 150, 20);

mainPanel.add(labelName);

tfName = new JTextField();

tfName.setBounds(180, 50, 200, 20);

mainPanel.add(tfName);

JLabel labelLocation = new JLabel("Location:");

labelLocation.setBounds(20, 80, 150, 20);

mainPanel.add(labelLocation);

tfLocation = new JTextField();

tfLocation.setBounds(180, 80, 200, 20);


mainPanel.add(tfLocation);

JLabel labelPhone = new JLabel("Phone:");

labelPhone.setBounds(20, 110, 150, 20);

mainPanel.add(labelPhone);

tfPhone = new JTextField();

tfPhone.setBounds(180, 110, 200, 20);

mainPanel.add(tfPhone);

JLabel labelEmail = new JLabel("Email:");

labelEmail.setBounds(20, 140, 150, 20);

mainPanel.add(labelEmail);

tfEmail = new JTextField();

tfEmail.setBounds(180, 140, 200, 20);

mainPanel.add(tfEmail);

// Gender radio buttons

JLabel labelGender = new JLabel("Gender:");

labelGender.setBounds(20, 170, 150, 20);

mainPanel.add(labelGender);

rbMale = new JRadioButton("Male");

rbMale.setBounds(180, 170, 80, 20);

mainPanel.add(rbMale);

rbFemale = new JRadioButton("Female");

rbFemale.setBounds(260, 170, 80, 20);


mainPanel.add(rbFemale);

genderGroup = new ButtonGroup();

genderGroup.add(rbMale);

genderGroup.add(rbFemale);

// Date of Birth

JLabel labelDOB = new JLabel("Date of Birth:");

labelDOB.setBounds(20, 200, 150, 20);

mainPanel.add(labelDOB);

String[] years = new String[100];

String[] months = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"};

String[] days = new String[31];

for (int i = 0; i < 100; i++) years[i] = String.valueOf(2023 - i);

for (int i = 0; i < 31; i++) days[i] = String.valueOf(i + 1);

dobYearComboBox = new JComboBox<>(years);

dobYearComboBox.setBounds(180, 200, 60, 20);

mainPanel.add(dobYearComboBox);

dobMonthComboBox = new JComboBox<>(months);

dobMonthComboBox.setBounds(250, 200, 50, 20);

mainPanel.add(dobMonthComboBox);

dobDayComboBox = new JComboBox<>(days);

dobDayComboBox.setBounds(310, 200, 50, 20);

mainPanel.add(dobDayComboBox);
// Membership Start Date

JLabel labelMembershipStartDate = new JLabel("Membership Start Date:");

labelMembershipStartDate.setBounds(20, 230, 150, 20);

mainPanel.add(labelMembershipStartDate);

msYearComboBox = new JComboBox<>(years);

msYearComboBox.setBounds(180, 230, 60, 20);

mainPanel.add(msYearComboBox);

msMonthComboBox = new JComboBox<>(months);

msMonthComboBox.setBounds(250, 230, 50, 20);

mainPanel.add(msMonthComboBox);

msDayComboBox = new JComboBox<>(days);

msDayComboBox.setBounds(310, 230, 50, 20);

mainPanel.add(msDayComboBox);

// Regular member specific fields

JLabel labelReferralSource = new JLabel("Referral Source:");

labelReferralSource.setBounds(20, 260, 150, 20);

mainPanel.add(labelReferralSource);

tfReferralSource = new JTextField();

tfReferralSource.setBounds(180, 260, 200, 20);

mainPanel.add(tfReferralSource);

JLabel labelRemovalReason = new JLabel("Removal Reason:");

labelRemovalReason.setBounds(20, 290, 150, 20);


mainPanel.add(labelRemovalReason);

tfRemovalReason = new JTextField();

tfRemovalReason.setBounds(180, 290, 200, 20);

mainPanel.add(tfRemovalReason);

JLabel labelPlan = new JLabel("Plan:");

labelPlan.setBounds(20, 320, 150, 20);

mainPanel.add(labelPlan);

String[] plans = {"Basic", "Standard", "Deluxe"};

planComboBox = new JComboBox<>(plans);

planComboBox.setBounds(180, 320, 200, 20);

mainPanel.add(planComboBox);

// Premium member specific fields

JLabel labelTrainerName = new JLabel("Trainer's Name:");

labelTrainerName.setBounds(450, 20, 150, 20);

mainPanel.add(labelTrainerName);

tfTrainerName = new JTextField();

tfTrainerName.setBounds(600, 20, 200, 20);

mainPanel.add(tfTrainerName);

JLabel labelPaidAmount = new JLabel("Paid Amount:");

labelPaidAmount.setBounds(450, 50, 150, 20);

mainPanel.add(labelPaidAmount);

tfPaidAmount = new JTextField();


tfPaidAmount.setBounds(600, 50, 200, 20);

mainPanel.add(tfPaidAmount);

JLabel lblPremiumCharge = new JLabel("Premium Charge: 50000.0");

lblPremiumCharge.setBounds(450, 80, 200, 20);

mainPanel.add(lblPremiumCharge);

JLabel lblDiscountAmount = new JLabel("Discount Amount: 0.0");

lblDiscountAmount.setBounds(450, 110, 200, 20);

mainPanel.add(lblDiscountAmount);

private void createDisplayArea() {

displayArea = new JTextArea();

displayArea.setEditable(false);

JScrollPane scrollPane = new JScrollPane(displayArea);

scrollPane.setBounds(20, 450, 840, 180);

mainPanel.add(scrollPane);

private void createButtons() {

// Regular member buttons

btnAddRegular = new JButton("Add Regular Member");

btnAddRegular.setBounds(20, 360, 180, 30);

btnAddRegular.addActionListener(this);

btnAddRegular.setBackground(new Color(100, 200, 100));

btnRevertRegular = new JButton("Revert Regular Member");

btnRevertRegular.setBounds(220, 360, 180, 30);


btnRevertRegular.addActionListener(this);

btnRevertRegular.setBackground(new Color(200, 100, 100));

// Premium member buttons

btnAddPremium = new JButton("Add Premium Member");

btnAddPremium.setBounds(450, 360, 180, 30);

btnAddPremium.addActionListener(this);

btnAddPremium.setBackground(new Color(100, 100, 200));

btnRevertPremium = new JButton("Revert Premium Member");

btnRevertPremium.setBounds(650, 360, 180, 30);

btnRevertPremium.addActionListener(this);

btnRevertPremium.setBackground(new Color(200, 100, 100));

// Common buttons

btnActivate = new JButton("Activate Membership");

btnActivate.setBounds(20, 400, 180, 30);

btnActivate.addActionListener(this);

btnActivate.setBackground(new Color(100, 200, 100));

btnDeactivate = new JButton("Deactivate Membership");

btnDeactivate.setBounds(220, 400, 180, 30);

btnDeactivate.addActionListener(this);

btnDeactivate.setBackground(new Color(200, 100, 100));

btnMarkAttendance = new JButton("Mark Attendance");

btnMarkAttendance.setBounds(450, 400, 180, 30);

btnMarkAttendance.addActionListener(this);

btnMarkAttendance.setBackground(new Color(100, 150, 200));


btnUpgradePlan = new JButton("Upgrade Plan");

btnUpgradePlan.setBounds(650, 400, 180, 30);

btnUpgradePlan.addActionListener(this);

btnUpgradePlan.setBackground(new Color(100, 200, 150));

// Display and file buttons

btnDisplay = new JButton("Display Members");

btnDisplay.setBounds(20, 640, 180, 30);

btnDisplay.addActionListener(this);

btnDisplay.setBackground(new Color(150, 150, 200));

btnClear = new JButton("Clear Fields");

btnClear.setBounds(220, 640, 180, 30);

btnClear.addActionListener(this);

btnClear.setBackground(new Color(200, 100, 100));

btnSaveToFile = new JButton("Save to File");

btnSaveToFile.setBounds(450, 640, 180, 30);

btnSaveToFile.addActionListener(this);

btnSaveToFile.setBackground(new Color(150, 200, 150));

btnReadFromFile = new JButton("Read from File");

btnReadFromFile.setBounds(650, 640, 180, 30);

btnReadFromFile.addActionListener(this);

btnReadFromFile.setBackground(new Color(200, 150, 150));

private void addComponents() {


mainPanel.add(btnAddRegular);

mainPanel.add(btnAddPremium);

mainPanel.add(btnActivate);

mainPanel.add(btnDeactivate);

mainPanel.add(btnMarkAttendance);

mainPanel.add(btnUpgradePlan);

mainPanel.add(btnRevertRegular);

mainPanel.add(btnRevertPremium);

mainPanel.add(btnDisplay);

mainPanel.add(btnClear);

mainPanel.add(btnSaveToFile);

mainPanel.add(btnReadFromFile);

@Override

public void actionPerformed(ActionEvent e) {

if (e.getSource() == btnAddRegular) {

addRegularMember();

} else if (e.getSource() == btnAddPremium) {

addPremiumMember();

} else if (e.getSource() == btnActivate) {

activateMembership();

} else if (e.getSource() == btnDeactivate) {

deactivateMembership();

} else if (e.getSource() == btnMarkAttendance) {

markAttendance();

} else if (e.getSource() == btnUpgradePlan) {

upgradePlan();

} else if (e.getSource() == btnRevertRegular) {


revertRegularMember();

} else if (e.getSource() == btnRevertPremium) {

revertPremiumMember();

} else if (e.getSource() == btnDisplay) {

displayMembers();

} else if (e.getSource() == btnClear) {

clearFields();

} else if (e.getSource() == btnSaveToFile) {

saveToFile();

} else if (e.getSource() == btnReadFromFile) {

readFromFile();

private void addRegularMember() {

try {

int id = Integer.parseInt(tfId.getText());

if (isMemberIdExists(id)) {

JOptionPane.showMessageDialog(this, "Member ID already exists!", "Error",


JOptionPane.ERROR_MESSAGE);

return;

String name = tfName.getText();

String location = tfLocation.getText();

String phone = tfPhone.getText();

String email = tfEmail.getText();

String gender = rbMale.isSelected() ? "Male" : "Female";


String dob = dobYearComboBox.getSelectedItem() + "-" +

dobMonthComboBox.getSelectedItem() + "-" +

dobDayComboBox.getSelectedItem();

String membershipStartDate = msYearComboBox.getSelectedItem() + "-" +

msMonthComboBox.getSelectedItem() + "-" +

msDayComboBox.getSelectedItem();

String referralSource = tfReferralSource.getText();

RegularMember newMember = new RegularMember(id, name, location, phone, email,

gender, dob, membershipStartDate, referralSource);

memberList.add(newMember);

JOptionPane.showMessageDialog(this, "Regular member added successfully!", "Success",


JOptionPane.INFORMATION_MESSAGE);

} catch (NumberFormatException e) {

JOptionPane.showMessageDialog(this, "Invalid ID format!", "Error",


JOptionPane.ERROR_MESSAGE);

} catch (Exception e) {

JOptionPane.showMessageDialog(this, "Error: " + e.getMessage(), "Error",


JOptionPane.ERROR_MESSAGE);

private void addPremiumMember() {

try {

int id = Integer.parseInt(tfId.getText());

if (isMemberIdExists(id)) {
JOptionPane.showMessageDialog(this, "Member ID already exists!", "Error",
JOptionPane.ERROR_MESSAGE);

return;

String name = tfName.getText();

String location = tfLocation.getText();

String phone = tfPhone.getText();

String email = tfEmail.getText();

String gender = rbMale.isSelected() ? "Male" : "Female";

String dob = dobYearComboBox.getSelectedItem() + "-" +

dobMonthComboBox.getSelectedItem() + "-" +

dobDayComboBox.getSelectedItem();

String membershipStartDate = msYearComboBox.getSelectedItem() + "-" +

msMonthComboBox.getSelectedItem() + "-" +

msDayComboBox.getSelectedItem();

String trainerName = tfTrainerName.getText();

PremiumMember newMember = new PremiumMember(id, name, location, phone, email,

gender, dob, membershipStartDate, trainerName);

memberList.add(newMember);

JOptionPane.showMessageDialog(this, "Premium member added successfully!", "Success",


JOptionPane.INFORMATION_MESSAGE);

} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(this, "Invalid ID format!", "Error",
JOptionPane.ERROR_MESSAGE);

} catch (Exception e) {

JOptionPane.showMessageDialog(this, "Error: " + e.getMessage(), "Error",


JOptionPane.ERROR_MESSAGE);

private boolean isMemberIdExists(int id) {

for (GymMember member : memberList) {

if (member.getId() == id) {

return true;

return false;

private void activateMembership() {

try {

int id = Integer.parseInt(tfId.getText());

GymMember member = findMemberById(id);

if (member != null) {

member.activateMembership();

JOptionPane.showMessageDialog(this, "Membership activated successfully!", "Success",


JOptionPane.INFORMATION_MESSAGE);

} else {

JOptionPane.showMessageDialog(this, "Member not found!", "Error",


JOptionPane.ERROR_MESSAGE);

}
} catch (NumberFormatException e) {

JOptionPane.showMessageDialog(this, "Invalid member ID!", "Error",


JOptionPane.ERROR_MESSAGE);

private void deactivateMembership() {

try {

int id = Integer.parseInt(tfId.getText());

GymMember member = findMemberById(id);

if (member != null) {

member.deactivateMembership();

JOptionPane.showMessageDialog(this, "Membership deactivated successfully!", "Success",


JOptionPane.INFORMATION_MESSAGE);

} else {

JOptionPane.showMessageDialog(this, "Member not found!", "Error",


JOptionPane.ERROR_MESSAGE);

} catch (NumberFormatException e) {

JOptionPane.showMessageDialog(this, "Invalid member ID!", "Error",


JOptionPane.ERROR_MESSAGE);

private void markAttendance() {

try {

int id = Integer.parseInt(tfId.getText());

GymMember member = findMemberById(id);


if (member != null) {

if (member.isActiveStatus()) {

member.markAttendance();

JOptionPane.showMessageDialog(this, "Attendance marked successfully!", "Success",


JOptionPane.INFORMATION_MESSAGE);

} else {

JOptionPane.showMessageDialog(this, "Member is not active!", "Error",


JOptionPane.ERROR_MESSAGE);

} else {

JOptionPane.showMessageDialog(this, "Member not found!", "Error",


JOptionPane.ERROR_MESSAGE);

} catch (NumberFormatException e) {

JOptionPane.showMessageDialog(this, "Invalid member ID!", "Error",


JOptionPane.ERROR_MESSAGE);

private void upgradePlan() {

try {

int id = Integer.parseInt(tfId.getText());

String plan = (String) planComboBox.getSelectedItem();

for (GymMember member : memberList) {

if (member.getId() == id && member instanceof RegularMember) {

// Downcasting example

RegularMember rm = (RegularMember) member;

String result = rm.upgradePlan(plan.toLowerCase());


JOptionPane.showMessageDialog(this, result, "Plan Upgrade",
JOptionPane.INFORMATION_MESSAGE);

return;

JOptionPane.showMessageDialog(this, "Regular member not found!", "Error",


JOptionPane.ERROR_MESSAGE);

} catch (NumberFormatException e) {

JOptionPane.showMessageDialog(this, "Invalid member ID!", "Error",


JOptionPane.ERROR_MESSAGE);

private void revertRegularMember() {

try {

int id = Integer.parseInt(tfId.getText());

String removalReason = tfRemovalReason.getText();

for (GymMember member : memberList) {

if (member.getId() == id && member instanceof RegularMember) {

// Downcasting example

((RegularMember) member).revertRegularMember(removalReason);

JOptionPane.showMessageDialog(this, "Regular member reverted successfully!", "Success",


JOptionPane.INFORMATION_MESSAGE);

return;

JOptionPane.showMessageDialog(this, "Regular member not found!", "Error",


JOptionPane.ERROR_MESSAGE);

} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(this, "Invalid member ID!", "Error",
JOptionPane.ERROR_MESSAGE);

private void revertPremiumMember() {

try {

int id = Integer.parseInt(tfId.getText());

for (GymMember member : memberList) {

if (member.getId() == id && member instanceof PremiumMember) {

// Downcasting example

((PremiumMember) member).revertPremiumMember();

JOptionPane.showMessageDialog(this, "Premium member reverted successfully!", "Success",


JOptionPane.INFORMATION_MESSAGE);

return;

JOptionPane.showMessageDialog(this, "Premium member not found!", "Error",


JOptionPane.ERROR_MESSAGE);

} catch (NumberFormatException e) {

JOptionPane.showMessageDialog(this, "Invalid member ID!", "Error",


JOptionPane.ERROR_MESSAGE);

private void payDueAmount() {

try {

int id = Integer.parseInt(tfId.getText());

double amount = Double.parseDouble(tfPaidAmount.getText());


for (GymMember member : memberList) {

if (member.getId() == id && member instanceof PremiumMember) {

// Downcasting example

PremiumMember pm = (PremiumMember) member;

String result = pm.payDueAmount(amount);

JOptionPane.showMessageDialog(this, result, "Payment",


JOptionPane.INFORMATION_MESSAGE);

return;

JOptionPane.showMessageDialog(this, "Premium member not found!", "Error",


JOptionPane.ERROR_MESSAGE);

} catch (NumberFormatException e) {

JOptionPane.showMessageDialog(this, "Invalid amount format!", "Error",


JOptionPane.ERROR_MESSAGE);

private void calculateDiscount() {

try {

int id = Integer.parseInt(tfId.getText());

for (GymMember member : memberList) {

if (member.getId() == id && member instanceof PremiumMember) {

// Downcasting example

PremiumMember pm = (PremiumMember) member;

pm.calculateDiscount();

JOptionPane.showMessageDialog(this, "Discount calculated successfully!", "Success",


JOptionPane.INFORMATION_MESSAGE);
return;

JOptionPane.showMessageDialog(this, "Premium member not found!", "Error",


JOptionPane.ERROR_MESSAGE);

} catch (NumberFormatException e) {

JOptionPane.showMessageDialog(this, "Invalid member ID!", "Error",


JOptionPane.ERROR_MESSAGE);

private void displayMembers() {

displayArea.setText("");

if (memberList.isEmpty()) {

displayArea.append("No members found in the system.\n");

return;

for (GymMember member : memberList) {

// Upcasting example - treating all members as GymMember objects

displayArea.append("Member Type: " + (member instanceof RegularMember ? "Regular" :


"Premium") + "\n");

displayArea.append("ID: " + member.getId() + "\n");

displayArea.append("Name: " + member.getName() + "\n");

displayArea.append("Location: " + member.getLocation() + "\n");

displayArea.append("Phone: " + member.getPhone() + "\n");

displayArea.append("Email: " + member.getEmail() + "\n");

displayArea.append("Gender: " + member.getGender() + "\n");

displayArea.append("DOB: " + member.getDOB() + "\n");

displayArea.append("Membership Start Date: " + member.getMembershipStartDate() + "\n");


displayArea.append("Attendance: " + member.getAttendance() + "\n");

displayArea.append("Loyalty Points: " + member.getLoyaltyPoints() + "\n");

displayArea.append("Active Status: " + member.isActiveStatus() + "\n");

if (member instanceof RegularMember) {

// Downcasting example

RegularMember rm = (RegularMember) member;

displayArea.append("Plan: " + rm.getPlan() + "\n");

displayArea.append("Price: " + rm.getPrice() + "\n");

displayArea.append("Referral Source: " + rm.getReferralSource() + "\n");

if (!rm.getRemovalReason().isEmpty()) {

displayArea.append("Removal Reason: " + rm.getRemovalReason() + "\n");

} else if (member instanceof PremiumMember) {

// Downcasting example

PremiumMember pm = (PremiumMember) member;

displayArea.append("Personal Trainer: " + pm.getPersonalTrainer() + "\n");

displayArea.append("Paid Amount: " + pm.getPaidAmount() + "\n");

displayArea.append("Premium Charge: " + pm.getPremiumCharge() + "\n");

displayArea.append("Is Full Payment: " + pm.getIsFullPayment() + "\n");

if (pm.getIsFullPayment()) {

displayArea.append("Discount Amount: " + pm.getDiscountAmount() + "\n");

displayArea.append("\n----------------------------------------\n\n");

}
private void saveToFile() {

try (FileWriter writer = new FileWriter("MemberDetails.txt")) {

// Write header

writer.write(String.format("%-5s %-15s %-15s %-15s %-25s %-20s %-10s %-10s %-10s %-15s %-10s
%-15s %-15s %-15s\n",

"ID", "Name", "Location", "Phone", "Email", "Membership Start Date", "Plan", "Price",

"Attendance", "Loyalty Points", "Active", "Full Payment", "Discount", "Net Paid"));

for (GymMember member : memberList) {

String type = member instanceof RegularMember ? "Regular" : "Premium";

String plan = "";

double price = 0;

boolean fullPayment = false;

double discount = 0;

double netPaid = 0;

if (member instanceof RegularMember) {

RegularMember rm = (RegularMember) member;

plan = rm.getPlan();

price = rm.getPrice();

} else if (member instanceof PremiumMember) {

PremiumMember pm = (PremiumMember) member;

plan = "Premium";

price = pm.getPremiumCharge();

fullPayment = pm.getIsFullPayment();

discount = pm.getDiscountAmount();

netPaid = pm.getPaidAmount();

}
writer.write(String.format("%-5d %-15s %-15s %-15s %-25s %-20s %-10s %-10.2f %-10d %-15.2f
%-10s %-15s %-15.2f %-15.2f\n",

member.getId(), member.getName(), member.getLocation(), member.getPhone(),

member.getEmail(), member.getMembershipStartDate(), plan, price,

member.getAttendance(), member.getLoyaltyPoints(), member.isActiveStatus(),

fullPayment, discount, netPaid));

JOptionPane.showMessageDialog(this, "Member details saved to file successfully!", "Success",


JOptionPane.INFORMATION_MESSAGE);

} catch (IOException e) {

JOptionPane.showMessageDialog(this, "Error saving to file: " + e.getMessage(), "Error",


JOptionPane.ERROR_MESSAGE);

private void readFromFile() {

try (BufferedReader reader = new BufferedReader(new FileReader("MemberDetails.txt"))) {

// Skip header line

reader.readLine();

String line;

displayArea.setText("");

displayArea.append("Member Details from File:\n\n");

while ((line = reader.readLine()) != null) {

displayArea.append(line + "\n");

}
JOptionPane.showMessageDialog(this, "Member details loaded from file successfully!",
"Success", JOptionPane.INFORMATION_MESSAGE);

} catch (FileNotFoundException e) {

JOptionPane.showMessageDialog(this, "File not found!", "Error", JOptionPane.ERROR_MESSAGE);

} catch (IOException e) {

JOptionPane.showMessageDialog(this, "Error reading file: " + e.getMessage(), "Error",


JOptionPane.ERROR_MESSAGE);

private void clearFields() {

// Clear all text fields

tfId.setText("");

tfName.setText("");

tfLocation.setText("");

tfPhone.setText("");

tfEmail.setText("");

tfReferralSource.setText("");

tfRemovalReason.setText("");

tfTrainerName.setText("");

tfPaidAmount.setText("");

// Reset gender selection

genderGroup.clearSelection();

// Reset date selections to first option

dobYearComboBox.setSelectedIndex(0);

dobMonthComboBox.setSelectedIndex(0);

dobDayComboBox.setSelectedIndex(0);
msYearComboBox.setSelectedIndex(0);

msMonthComboBox.setSelectedIndex(0);

msDayComboBox.setSelectedIndex(0);

// Reset plan selection to first option

planComboBox.setSelectedIndex(0);

private GymMember findMemberById(int id) {

for (GymMember member : memberList) {

if (member.getId() == id) {

return member;

return null;

public static void main(String[] args) {

new GymGUI();

} i need same code same but create menu separte seprate for regular and premium member also look
at my txt file align data column row nicely and one thing mport javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.util.ArrayList;

import java.io.* dont writw this write full detail suppose i write * it install whole it consfume memory

You might also like