donut188

Server GUI

Dec 8th, 2013
316
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.80 KB | None | 0 0
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4.  
  5. public class GUIForServer extends JFrame implements ActionListener, WindowListener
  6. {
  7.     private JButton coexist;
  8.     private JLabel question;
  9.     private JTextArea messageArea, messageEvent;
  10.     private JTextField portNumber;
  11.     private JRadioButton tcp, udp;
  12.     private Server server;
  13.     private UDPServer udpserver;
  14.     public GUIForServer(int port)
  15.     {
  16.         super("Messaging Server");
  17.         server = null;
  18.  
  19.         JPanel north = new JPanel();
  20.         north.add(new JLabel("Port number: "));
  21.         portNumber = new JTextField("    " + port);
  22.         north.add(portNumber);
  23.  
  24.         coexist = new JButton("Start Server");
  25.         question = new JLabel("Please choose a connection type: ");
  26.         tcp = new JRadioButton("TCP");
  27.         udp = new JRadioButton("UDP");
  28.         coexist.addActionListener(this);
  29.         north.add(coexist);
  30.         north.add(question);
  31.         north.add(tcp);
  32.         north.add(udp);
  33.         add(north, BorderLayout.NORTH);
  34.  
  35.         JPanel center = new JPanel(new GridLayout(2,1));
  36.         messageArea = new JTextArea(70,70);
  37.         messageArea.setEditable(false);
  38.         chatTextArea("Text area of messages that have been sent: \n");
  39.         center.add(new JScrollPane(messageArea));
  40.  
  41.         messageEvent = new JTextArea(70,70);
  42.         messageEvent.setEditable(false);
  43.         eventTextArea("Log of events that has happened: \n");
  44.         center.add(new JScrollPane(messageEvent));
  45.         add(center);
  46.  
  47.         addWindowListener(this);
  48.         setSize(600,600);
  49.         setVisible(true);
  50.     }
  51.  
  52.     public void chatTextArea(String str)
  53.     {
  54.         messageArea.append(str);
  55.         messageArea.setCaretPosition(messageArea.getText().length() - 1);
  56.     }
  57.  
  58.     public void eventTextArea(String str)
  59.     {
  60.         messageEvent.append(str);
  61.         messageEvent.setCaretPosition(messageEvent.getText().length() - 1);
  62.     }
  63.  
  64.     public void actionPerformed(ActionEvent ae)
  65.     {
  66.         if(tcp.isSelected())
  67.         {
  68.             if(server != null)
  69.             {
  70.                 server.stop();
  71.                 server = null;
  72.                 portNumber.setEditable(true);
  73.                 coexist.setText("Start Server");
  74.                 return;
  75.             }
  76.  
  77.             int port;
  78.             try
  79.             {
  80.                 port = Integer.parseInt(portNumber.getText().trim());
  81.             }
  82.             catch(Exception e)
  83.             {
  84.                 eventTextArea("Invalid port number!");
  85.                 return;
  86.             }
  87.  
  88.             server = new Server(port, this);
  89.  
  90.             new ServerThread().start();
  91.             coexist.setText("Stop Server");
  92.             portNumber.setEditable(false);
  93.         }
  94.  
  95.         if(udp.isSelected())
  96.         {
  97.             if(udpserver != null)
  98.             {
  99.                 portNumber.setEditable(true);
  100.                 coexist.setText("Start Server");
  101.                 return;
  102.             }
  103.  
  104.             int port;
  105.             try
  106.             {
  107.                 port = Integer.parseInt(portNumber.getText().trim());
  108.             }
  109.             catch(Exception e)
  110.             {
  111.                 eventTextArea("Invalid port number!");
  112.                 return;
  113.             }
  114.  
  115.             udpserver = new UDPServer(this);
  116.  
  117.             //udpserver.main();
  118.  
  119.             coexist.setText("Stop Server");
  120.             portNumber.setEditable(false);
  121.         }
  122.  
  123.     }
  124.  
  125.     public static void main(String[] arg)
  126.     {
  127.         new GUIForServer(7257);
  128.     }
  129.  
  130.     public void windowClosing(WindowEvent we)
  131.     {
  132.  
  133.         if(server != null) {
  134.             try {
  135.                 server.stop();
  136.             }
  137.             catch(Exception e) {
  138.             }
  139.             server = null;
  140.         }
  141.  
  142.         dispose();
  143.         System.exit(0);
  144.     }
  145.  
  146.     public void windowClosed(WindowEvent we)
  147.     {
  148.     }
  149.  
  150.     public void windowOpened(WindowEvent we)
  151.     {
  152.     }
  153.  
  154.     public void windowIconified(WindowEvent we)
  155.     {
  156.     }
  157.  
  158.     public void windowDeiconified(WindowEvent we)
  159.     {
  160.     }
  161.  
  162.     public void windowActivated(WindowEvent we)
  163.     {
  164.     }
  165.  
  166.     public void windowDeactivated(WindowEvent we)
  167.     {
  168.     }
  169.  
  170.     public class ServerThread extends Thread
  171.     {
  172.         public void run()
  173.         {
  174.             server.start();
  175.             coexist.setText("Start Server");
  176.             portNumber.setEditable(true);
  177.             eventTextArea("The server has crashed! \n");
  178.             server = null;
  179.         }
  180.     }
  181.  
  182.     /*public class UDPServerThread extends Thread
  183.     {
  184.     public void run(){
  185.     udpserver.start();
  186.     coexist.setText("Start Server");
  187.     portNumber.setEditable(true);
  188.     eventTextArea("The server has crashed! \n");
  189.     udpserver = null;
  190.     }
  191.     }
  192.      */
  193.  
  194. }
Advertisement
Add Comment
Please, Sign In to add comment