```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());
}
}
}
```