```java package mockskeleton; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import javax.swing.Box; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; /** * * @author aballantyne */ public class GUISwitchboard extends JFrame implements ActionListener { JButton btnRead, btnPrint, btnEnter, btnOver, btnDue; GUISwitchboard() { this.setSize(300, 300); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container vert = Box.createVerticalBox(); btnRead = new JButton("Read customers from file"); btnRead.addActionListener(this); vert.add(btnRead); btnPrint = new JButton("Print customers"); btnPrint.addActionListener(this); vert.add(btnPrint); btnEnter = new JButton("Enter new customer"); btnEnter.addActionListener(this); vert.add(btnEnter); btnOver = new JButton("Find balances over £50"); btnOver.addActionListener(this); vert.add(btnOver); btnDue = new JButton("Find balances due in next 7 days"); btnDue.addActionListener(this); vert.add(btnDue); this.add(vert); this.setVisible(true); } @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == btnRead) { JFileChooser fileChooser = new JFileChooser(); int returnVal = fileChooser.showOpenDialog(this); File filename; if (returnVal == JFileChooser.APPROVE_OPTION) { filename = fileChooser.getSelectedFile(); DBase.readCustomersFromFile(filename.toString()); } } else if (e.getSource() == btnPrint) { new GUIDisplayData(DBase.getCustomers()); } else if (e.getSource() == btnEnter) { new GUIDisplayRecord(); } else if (e.getSource() == btnOver) { new GUIDisplayData(DBase.getBalanceOver50()); } else if (e.getSource() == btnDue) { new GUIDisplayData(DBase.getDueNextWeek()); } } } ```