import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.List; public class ClientViewImp extends JFrame implements ClientView { private JTextArea textArea; private JButton loadButton; private ClientController controller; public ClientViewImp(ClientController controller) { this.controller = controller; setTitle("Client Viewer (SOLID Version)"); setSize(400, 300); setDefaultCloseOperation(EXIT_ON_CLOSE); setLayout(new BorderLayout()); textArea = new JTextArea(); loadButton = new JButton("Load Clients"); loadButton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ callController(); } }); add(new JScrollPane(textArea), BorderLayout.CENTER); add(loadButton, BorderLayout.SOUTH); setVisible(true); } public void callController(){ this.controller.loadClients(this); } public void displayClients(List clients) { textArea.setText(""); for (Client c : clients) { textArea.append(c.toString()); } } }