diff --git a/cs654/proj1/KaZaGUI.java b/cs654/proj1/KaZaGUI.java index ab5969d..b583d0d 100644 --- a/cs654/proj1/KaZaGUI.java +++ b/cs654/proj1/KaZaGUI.java @@ -2,6 +2,7 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; +import java.util.*; public class KaZaGUI extends JFrame { @@ -12,6 +13,7 @@ public class KaZaGUI extends JFrame private JTextField m_statusField; private JTextField m_serverField; private ActionEventHandler m_handler; + private JComboBox m_speedCombo; public KaZaGUI() { @@ -30,10 +32,10 @@ public class KaZaGUI extends JFrame JPanel clientPanel = getClientPanel(); pane.add("Client", clientPanel); - JPanel transferPanel = new JPanel(new BorderLayout()); + JPanel transferPanel = getTransferPanel(); pane.add("Transfers", transferPanel); - JPanel serverPanel = new JPanel(new BorderLayout()); + JPanel serverPanel = getServerPanel(); pane.add("Server", serverPanel); } @@ -62,8 +64,47 @@ public class KaZaGUI extends JFrame } } + public class ConnectionSpeed + { + String m_caption; + int m_kbps; + + public ConnectionSpeed(String caption, int kbps) + { + m_caption = caption; + m_kbps = kbps; + } + + public String toString() + { + return m_caption; + } + } + private JPanel getClientPanel() { + m_shareFolderField = new JTextField(); + m_browseButton = new JButton("..."); + m_browseButton.addActionListener(m_handler); + m_serverField = new JTextField(); + m_statusField = new JTextField(); + m_connectButton = new JButton("Connect"); + m_connectButton.addActionListener(m_handler); + m_closeButton = new JButton("Close"); + m_closeButton.addActionListener(m_handler); + Vector speeds = new Vector(); + speeds.add(new ConnectionSpeed("Modem", 50)); + speeds.add(new ConnectionSpeed("768 Kbps", 768)); + speeds.add(new ConnectionSpeed("1.5 Mbps", 1500)); + speeds.add(new ConnectionSpeed("3 Mbps", 3000)); + speeds.add(new ConnectionSpeed("6 Mbps", 6000)); + speeds.add(new ConnectionSpeed("10 Mbps", 10000)); + speeds.add(new ConnectionSpeed("100 Mbps", 100000)); + speeds.add(new ConnectionSpeed("1 Gbps", 1000000)); + speeds.add(new ConnectionSpeed("10 Gbps", 10000000)); + m_speedCombo = new JComboBox(speeds); + m_speedCombo.setSelectedIndex(3); + JPanel clientPanel = new JPanel(); clientPanel.setLayout(new BoxLayout(clientPanel, BoxLayout.Y_AXIS)); JPanel p = new JPanel(); @@ -74,21 +115,17 @@ public class KaZaGUI extends JFrame p = new JPanel(); p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS)); p.add(new JLabel("Connection speed: ")); - p.add(new JTextField()); + p.add(m_speedCombo); clientPanel.add(p); p = new JPanel(); p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS)); p.add(new JLabel("Shared folder: ")); - m_shareFolderField = new JTextField(); p.add(m_shareFolderField); - m_browseButton = new JButton("..."); - m_browseButton.addActionListener(m_handler); p.add(m_browseButton); clientPanel.add(p); p = new JPanel(); p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS)); p.add(new JLabel("Server: ")); - m_serverField = new JTextField(); p.add(m_serverField); clientPanel.add(p); clientPanel.add(new Box.Filler(new Dimension(0, 0), @@ -97,22 +134,33 @@ public class KaZaGUI extends JFrame Short.MAX_VALUE))); p = new JPanel(); p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS)); - m_statusField = new JTextField(); p.add(m_statusField); p.add(new Box.Filler(new Dimension(0, 0), new Dimension(Short.MAX_VALUE, 0), new Dimension(Short.MAX_VALUE, Short.MAX_VALUE))); - m_connectButton = new JButton("Connect"); - m_connectButton.addActionListener(m_handler); p.add(m_connectButton); p.add(new Box.Filler(new Dimension(8, 0), new Dimension(8, 0), new Dimension(8, Short.MAX_VALUE))); - m_closeButton = new JButton("Close"); - m_closeButton.addActionListener(m_handler); p.add(m_closeButton); clientPanel.add(p); return clientPanel; } + + private JPanel getTransferPanel() + { + JPanel transferPanel = new JPanel(); + transferPanel.setLayout(new BoxLayout(transferPanel, BoxLayout.Y_AXIS)); + transferPanel.add(new JLabel("Transfers:")); + transferPanel.add(new Box.Filler(new Dimension(0, 0), + new Dimension(0, Short.MAX_VALUE), + new Dimension(0, Short.MAX_VALUE))); + return transferPanel; + } + + private JPanel getServerPanel() + { + return new JPanel(); + } }