private JTextField idField, nameField, locationField, phoneField, emailField;
private JTextField referralSourceField, paidAmountField, removalReasonField,
trainerNameField;
private JTextField regularPlanPriceField, premiumPlanChargeField,
discountAmountField;
private JComboBox<String> dobYearCombo, dobMonthCombo, dobDayCombo;
private JComboBox<String> msYearCombo, msMonthCombo, msDayCombo;
private JComboBox<String> planCombo;
private JRadioButton maleRadio, femaleRadio, otherRadio;
private ButtonGroup genderGroup;
public GymGUI() {
createGUI();
}
private void createGUI() {
frame = new JFrame("Yug Gym");
[Link](JFrame.EXIT_ON_CLOSE);
[Link](1000, 600);
JPanel mainPanel = new JPanel(new BorderLayout(10, 10));
[Link]([Link](10, 10, 10, 10));
JPanel formPanel = new JPanel(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
[Link] = new Insets(5, 5, 5, 5);
[Link] = [Link];
[Link] = [Link];
// === FORM FIELDS ===
int row = 0;
idField = addLabeledField(formPanel, "Member ID:", gbc, row++);
nameField = addLabeledField(formPanel, "Name:", gbc, row++);
locationField = addLabeledField(formPanel, "Location:", gbc, row++);
phoneField = addLabeledField(formPanel, "Phone:", gbc, row++);
emailField = addLabeledField(formPanel, "Email:", gbc, row++);
// Gender
[Link] = 0; [Link] = row;
[Link](new JLabel("Gender:"), gbc);
JPanel genderPanel = new JPanel(new FlowLayout([Link], 2, 2));
maleRadio = new JRadioButton("Male");
femaleRadio = new JRadioButton("Female");
otherRadio = new JRadioButton("Other");
genderGroup = new ButtonGroup();
[Link](maleRadio); [Link](femaleRadio);
[Link](otherRadio);
[Link](maleRadio); [Link](femaleRadio);
[Link](otherRadio);
[Link] = 1;
[Link](genderPanel, gbc);
row++;
// DOB
[Link] = 0; [Link] = row;
[Link](new JLabel("Date of Birth:"), gbc);
[Link] = 1;
JPanel dobPanel = new JPanel(new FlowLayout([Link], 2, 2));
dobYearCombo = new JComboBox<>(generateYearOptions());
dobMonthCombo = new JComboBox<>(generateMonthOptions());
dobDayCombo = new JComboBox<>(generateDayOptions());
[Link](dobYearCombo); [Link](new JLabel("/"));
[Link](dobMonthCombo); [Link](new JLabel("/"));
[Link](dobDayCombo);
[Link](dobPanel, gbc);
row++;
// Membership Start Date
[Link] = 0; [Link] = row;
[Link](new JLabel("Membership Start Date:"), gbc);
[Link] = 1;
JPanel msPanel = new JPanel(new FlowLayout([Link], 2, 2));
msYearCombo = new JComboBox<>(generateYearOptions());
msMonthCombo = new JComboBox<>(generateMonthOptions());
msDayCombo = new JComboBox<>(generateDayOptions());
[Link](msYearCombo); [Link](new JLabel("/"));
[Link](msMonthCombo); [Link](new JLabel("/"));
[Link](msDayCombo);
[Link](msPanel, gbc);
row++;
referralSourceField = addLabeledField(formPanel, "Referral Source:", gbc, row+
+);
paidAmountField = addLabeledField(formPanel, "Paid Amount:", gbc, row++);
removalReasonField = addLabeledField(formPanel, "Removal Reason:", gbc, row++);
trainerNameField = addLabeledField(formPanel, "Trainer's Name:", gbc, row++);
// Plan ComboBox
[Link] = 0; [Link] = row;
[Link](new JLabel("Plan (Regular only):"), gbc);
[Link] = 1;
planCombo = new JComboBox<>(new String[]{"Basic", "Standard", "Deluxe"});
[Link](planCombo, gbc);
row++;
// Financial Details (Read-only fields)
regularPlanPriceField = addLabeledField(formPanel, "Regular Plan Price:", gbc,
row++);
premiumPlanChargeField = addLabeledField(formPanel, "Premium Plan Charge:",
gbc, row++);
discountAmountField = addLabeledField(formPanel, "Discount Amount:", gbc, row+
+);
[Link]("6500");
[Link](false);
[Link]("50000");
[Link](false);
[Link]("0");
[Link](false);
//BUTTON PANEL
JPanel buttonPanel = new JPanel(new GridLayout(3, 1, 10, 10));
JPanel row1 = new JPanel(new FlowLayout([Link]));
[Link](createButton("Add Regular Member", e -> addRegularMember()));
[Link](createButton("Add Premium Member", e -> addPremiumMember()));
[Link](createButton("Activate Membership", e -> activateMembership()));
[Link](createButton("Deactivate Membership", e -> deactivateMembership()));
[Link](createButton("Mark Attendance", e -> markAttendance()));
JPanel row2 = new JPanel(new FlowLayout([Link]));
[Link](createButton("Upgrade Plan", e -> upgradePlan()));
[Link](createButton("Revert Regular", e -> revertRegular()));
[Link](createButton("Revert Premium", e -> revertPremium()));
[Link](createButton("Pay Due Amount", e -> payDueAmount()));
JPanel row3 = new JPanel(new FlowLayout([Link]));
[Link](createButton("Calculate Discount", e -> calculateDiscount()));
[Link](createButton("Display", e -> displayInfo()));
[Link](createButton("Clear", e -> clearFields()));
[Link](row1);
[Link](row2);
[Link](row3);
// ADD PANELS TO MAIN
[Link](new JScrollPane(formPanel), [Link]);
[Link](buttonPanel, [Link]);
[Link](mainPanel);
[Link](true);
}
private JTextField addLabeledField(JPanel panel, String label, GridBagConstraints
gbc, int row) {
[Link] = 0; [Link] = row;
[Link](new JLabel(label), gbc);
[Link] = 1;
JTextField field = new JTextField();
[Link](field, gbc);
return field;
}
private JButton createButton(String text, ActionListener listener) {
JButton btn = new JButton(text);
[Link](listener);
return btn;
}
private String[] generateYearOptions() {
String[] years = new String[100];
for (int i = 0; i < 100; i++) years[i] = [Link](2025 - i);
return years;
}
private String[] generateMonthOptions() {
return new String[]{"01", "02", "03", "04", "05", "06", "07", "08", "09", "10",
"11", "12"};
}
private String[] generateDayOptions() {
String[] days = new String[31];
for (int i = 0; i < 31; i++) days[i] = [Link](i + 1);
return days;
}
private void addRegularMember() {
[Link](frame, "Regular Member Added");
}
private void addPremiumMember() {
[Link](frame, "Premium Member Added");
}
private void activateMembership() {
[Link](frame, "Membership Activated");
}
private void deactivateMembership() {
[Link](frame, "Membership Deactivated");
}
private void markAttendance() {
[Link](frame, "Attendance Marked");
}
private void upgradePlan() {
[Link](frame, "Plan Upgraded");
}
private void calculateDiscount() {
[Link](frame, "Discount Calculated");
}
private void revertRegular() {
[Link](frame, "Reverted to Regular Plan");
}
private void revertPremium() {
[Link](frame, "Reverted to Premium Plan");
}
private void payDueAmount() {
[Link](frame, "Due Amount Paid");
}
private void displayInfo() {
StringBuilder info = new StringBuilder();
for (GymMember member : members) {
[Link]([Link]()).append("\n");
}
[Link](frame, [Link]());
}
private void clearFields() {
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]("6500");
[Link]("50000");
[Link]("");
[Link]();
[Link](0);
[Link](0);
[Link](0);
[Link](0);
[Link](0);
[Link](0);
[Link](0);
}
public static void main(String[] args) {
[Link](GymGUI::new);
}