import javax.swing.*; import java.awt.*; public class MemberFormPanel extends JPanel { private final LibraryController controller; public MemberFormPanel(LibraryController controller) { this.controller = controller; buildUI(); } private void buildUI() { setLayout(new BorderLayout()); JLabel header = new JLabel("Member Management", SwingConstants.CENTER); header.setFont(new Font("Arial", Font.BOLD, 18)); add(header, BorderLayout.NORTH); JPanel form = new JPanel(new GridLayout(4, 2, 10, 10)); JTextField idField = new JTextField(); JTextField nameField = new JTextField(); JButton addBtn = new JButton("Add Member"); JButton searchBtn = new JButton("Search"); form.add(new JLabel("Member ID:")); form.add(idField); form.add(new JLabel("Name:")); form.add(nameField); form.add(addBtn); form.add(searchBtn); JPanel formWrapper = new JPanel(new FlowLayout(FlowLayout.LEFT)); formWrapper.add(form); add(formWrapper, BorderLayout.WEST); JTextArea output = new JTextArea(); output.setEditable(false); add(new JScrollPane(output), BorderLayout.CENTER); addBtn.addActionListener(e -> { String id = idField.getText().trim(); String name = nameField.getText().trim(); if (id.isEmpty() || name.isEmpty()) { JOptionPane.showMessageDialog(this, "Please fill all fields."); return; } controller.addMember(new Member(id, name)); output.setText("Member added:\n" + id + " - " + name); }); searchBtn.addActionListener(e -> { String id = idField.getText().trim(); Member m = controller.findMember(id); if (m == null) { output.setText("Member not found."); } else { output.setText("Member found:\nID: " + m.getId() + "\nName: " + m.getName()); } }); } }