Import Javax
Import Javax
*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.io.*;
// Main components
// Input fields
// Display area
// Buttons
setSize(900, 700);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainPanel.setLayout(null);
createInputFields();
createDisplayArea();
// Create buttons
createButtons();
addComponents();
add(mainPanel);
setVisible(true);
// Common fields
mainPanel.add(labelId);
mainPanel.add(tfId);
mainPanel.add(labelName);
mainPanel.add(tfName);
mainPanel.add(labelLocation);
mainPanel.add(labelPhone);
mainPanel.add(tfPhone);
mainPanel.add(labelEmail);
mainPanel.add(tfEmail);
mainPanel.add(labelGender);
mainPanel.add(rbMale);
genderGroup.add(rbMale);
genderGroup.add(rbFemale);
// Date of Birth
mainPanel.add(labelDOB);
String[] months = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"};
mainPanel.add(dobYearComboBox);
mainPanel.add(dobMonthComboBox);
mainPanel.add(dobDayComboBox);
// Membership Start Date
mainPanel.add(labelMembershipStartDate);
mainPanel.add(msYearComboBox);
mainPanel.add(msMonthComboBox);
mainPanel.add(msDayComboBox);
mainPanel.add(labelReferralSource);
mainPanel.add(tfReferralSource);
mainPanel.add(tfRemovalReason);
mainPanel.add(labelPlan);
mainPanel.add(planComboBox);
mainPanel.add(labelTrainerName);
mainPanel.add(tfTrainerName);
mainPanel.add(labelPaidAmount);
mainPanel.add(tfPaidAmount);
mainPanel.add(lblPremiumCharge);
mainPanel.add(lblDiscountAmount);
displayArea.setEditable(false);
mainPanel.add(scrollPane);
btnAddRegular.addActionListener(this);
btnAddPremium.addActionListener(this);
btnRevertPremium.addActionListener(this);
// Common buttons
btnActivate.addActionListener(this);
btnDeactivate.addActionListener(this);
btnMarkAttendance.addActionListener(this);
btnUpgradePlan.addActionListener(this);
btnDisplay.addActionListener(this);
btnClear.addActionListener(this);
btnSaveToFile.addActionListener(this);
btnReadFromFile.addActionListener(this);
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
if (e.getSource() == btnAddRegular) {
addRegularMember();
addPremiumMember();
activateMembership();
deactivateMembership();
markAttendance();
upgradePlan();
revertPremiumMember();
displayMembers();
clearFields();
saveToFile();
readFromFile();
try {
int id = Integer.parseInt(tfId.getText());
if (isMemberIdExists(id)) {
return;
dobMonthComboBox.getSelectedItem() + "-" +
dobDayComboBox.getSelectedItem();
msMonthComboBox.getSelectedItem() + "-" +
msDayComboBox.getSelectedItem();
memberList.add(newMember);
} catch (NumberFormatException e) {
} catch (Exception e) {
try {
int id = Integer.parseInt(tfId.getText());
if (isMemberIdExists(id)) {
JOptionPane.showMessageDialog(this, "Member ID already exists!", "Error",
JOptionPane.ERROR_MESSAGE);
return;
dobMonthComboBox.getSelectedItem() + "-" +
dobDayComboBox.getSelectedItem();
msMonthComboBox.getSelectedItem() + "-" +
msDayComboBox.getSelectedItem();
memberList.add(newMember);
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(this, "Invalid ID format!", "Error",
JOptionPane.ERROR_MESSAGE);
} catch (Exception e) {
if (member.getId() == id) {
return true;
return false;
try {
int id = Integer.parseInt(tfId.getText());
if (member != null) {
member.activateMembership();
} else {
}
} catch (NumberFormatException e) {
try {
int id = Integer.parseInt(tfId.getText());
if (member != null) {
member.deactivateMembership();
} else {
} catch (NumberFormatException e) {
try {
int id = Integer.parseInt(tfId.getText());
if (member.isActiveStatus()) {
member.markAttendance();
} else {
} else {
} catch (NumberFormatException e) {
try {
int id = Integer.parseInt(tfId.getText());
// Downcasting example
return;
} catch (NumberFormatException e) {
try {
int id = Integer.parseInt(tfId.getText());
// Downcasting example
((RegularMember) member).revertRegularMember(removalReason);
return;
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(this, "Invalid member ID!", "Error",
JOptionPane.ERROR_MESSAGE);
try {
int id = Integer.parseInt(tfId.getText());
// Downcasting example
((PremiumMember) member).revertPremiumMember();
return;
} catch (NumberFormatException e) {
try {
int id = Integer.parseInt(tfId.getText());
// Downcasting example
return;
} catch (NumberFormatException e) {
try {
int id = Integer.parseInt(tfId.getText());
// Downcasting example
pm.calculateDiscount();
} catch (NumberFormatException e) {
displayArea.setText("");
if (memberList.isEmpty()) {
return;
// Downcasting example
if (!rm.getRemovalReason().isEmpty()) {
// Downcasting example
if (pm.getIsFullPayment()) {
displayArea.append("\n----------------------------------------\n\n");
}
private void saveToFile() {
// 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",
double price = 0;
double discount = 0;
double netPaid = 0;
plan = rm.getPlan();
price = rm.getPrice();
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",
} catch (IOException e) {
reader.readLine();
String line;
displayArea.setText("");
displayArea.append(line + "\n");
}
JOptionPane.showMessageDialog(this, "Member details loaded from file successfully!",
"Success", JOptionPane.INFORMATION_MESSAGE);
} catch (FileNotFoundException e) {
} catch (IOException e) {
tfId.setText("");
tfName.setText("");
tfLocation.setText("");
tfPhone.setText("");
tfEmail.setText("");
tfReferralSource.setText("");
tfRemovalReason.setText("");
tfTrainerName.setText("");
tfPaidAmount.setText("");
genderGroup.clearSelection();
dobYearComboBox.setSelectedIndex(0);
dobMonthComboBox.setSelectedIndex(0);
dobDayComboBox.setSelectedIndex(0);
msYearComboBox.setSelectedIndex(0);
msMonthComboBox.setSelectedIndex(0);
msDayComboBox.setSelectedIndex(0);
planComboBox.setSelectedIndex(0);
if (member.getId() == id) {
return member;
return null;
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