Advertisement
Guest User

Untitled

a guest
May 28th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.39 KB | None | 0 0
  1. package app;
  2. import java.awt.Dimension;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import java.awt.event.WindowEvent;
  6. import java.awt.event.WindowListener;
  7.  
  8.  
  9. import javax.swing.DefaultListModel;
  10. import javax.swing.JButton;
  11.  
  12. import javax.swing.JList;
  13. import javax.swing.JPanel;
  14. import javax.swing.JPasswordField;
  15. import javax.swing.JScrollPane;
  16. import javax.swing.JTextArea;
  17. import javax.swing.JTextField;
  18.  
  19. import app.Client;
  20. import data.Message;
  21.  
  22. public class MainFrame extends javax.swing.JFrame{
  23.    
  24.         public Client client;
  25.         public int port;
  26.         public String serverAddr, username, password;
  27.         public Thread clientThread;
  28.    
  29.        
  30.         //UI Variables
  31.         DefaultListModel model;
  32.         JPanel p;
  33.         JButton signup,login,send,connect;
  34.         JPasswordField passwordField;
  35.         JTextField userNameField,messageField;
  36.         JTextArea mainArea;
  37.         JScrollPane scrollPaneText,scrollPaneOnline,scrollPaneChatrooms;
  38.         JList list,list2;
  39.        
  40.  
  41.         private void initialize(){
  42.             p = new JPanel();
  43.             signup = new JButton("Sign-Up");
  44.             login = new JButton("Login");
  45.             send = new JButton("send");
  46.             connect = new JButton("connect");
  47.             passwordField = new JPasswordField("password",10);
  48.             userNameField = new JTextField("username",10);
  49.             messageField = new JTextField("Input message here",37);
  50.             mainArea = new JTextArea("",10,20);
  51.             scrollPaneText = new JScrollPane(mainArea);
  52.             scrollPaneText.setPreferredSize(new Dimension(315, 150));
  53.             list = new JList();
  54.             list.setModel((model = new DefaultListModel()));
  55.             model.addElement("All");
  56.             list2 = new JList();
  57.             list2.setModel((model = new DefaultListModel()));
  58.             mainArea.setEditable(false);
  59.             scrollPaneOnline = new JScrollPane(list);  
  60.             scrollPaneOnline.setPreferredSize(new Dimension(75, 150));
  61.             scrollPaneChatrooms = new JScrollPane(list2);
  62.             scrollPaneChatrooms.setPreferredSize(new Dimension(75, 150));
  63.            
  64.             connect.addActionListener(new ActionListener() {
  65.                 public void actionPerformed(ActionEvent evt) {
  66.                     connectToServer(evt);
  67.                 }
  68.             });
  69.            
  70.             signup.addActionListener(new ActionListener() {
  71.                 public void actionPerformed(ActionEvent evt) {
  72.                     signUp(evt);
  73.                 }
  74.             });
  75.            
  76.             login.addActionListener(new ActionListener() {
  77.                 public void actionPerformed(ActionEvent evt) {
  78.                     logIn(evt);
  79.                 }
  80.             });
  81.            
  82.             send.addActionListener(new ActionListener() {
  83.                 public void actionPerformed(ActionEvent evt) {
  84.                     sendMessage(evt);
  85.                 }
  86.             });
  87.         }
  88.        
  89.         private void logIn(ActionEvent evt){
  90.             username = userNameField.getText();
  91.             password = passwordField.getText();
  92.            
  93.             if(!username.isEmpty() && !password.isEmpty()){
  94.                 client.send(new Message("login", username, password, "SERVER"));
  95.             }
  96.         }
  97.        
  98.         private void sendMessage(ActionEvent evt){
  99.              String msg = messageField.getText();
  100.              String target = list.getSelectedValue().toString();
  101.              
  102.              if(!msg.isEmpty() && !target.isEmpty()){
  103.                  messageField.setText("");
  104.                  client.send(new Message("message", username, msg, target));
  105.              }
  106.         }      
  107.         private void signUp(ActionEvent evt){
  108.              username = userNameField.getText();
  109.              password = passwordField.getText();
  110.              
  111.              if(!username.isEmpty() && !password.isEmpty()){
  112.                  client.send(new Message("signup", username, password, "SERVER"));
  113.              }
  114.         }
  115.         private void connectToServer(ActionEvent evt){
  116.              try{
  117.                     client = new Client(this);
  118.                     clientThread = new Thread(client);
  119.                     clientThread.start();
  120.                     client.send(new Message("test", "testUser", "testContent", "SERVER"));
  121.                 }
  122.                 catch(Exception ex){
  123.                     mainArea.append("[Application > Me] : Server not found\n");
  124.                 }
  125.         }
  126.  
  127.        
  128.         public MainFrame() {     
  129.             super("Messenger App!");
  130.             this.addWindowListener(new WindowListener() {
  131.                @Override public void windowOpened(WindowEvent e) {}
  132.                @Override public void windowClosing(WindowEvent e) { try{ client.send(new Message("message", username, "#remove", "SERVER")); clientThread.stop();  }catch(Exception ex){} }
  133.                @Override public void windowClosed(WindowEvent e) {}
  134.                @Override public void windowIconified(WindowEvent e) {}
  135.                @Override public void windowDeiconified(WindowEvent e) {}
  136.                @Override public void windowActivated(WindowEvent e) {}
  137.                @Override public void windowDeactivated(WindowEvent e) {}
  138.              });
  139.             setSize(500,260);
  140.             setResizable(false);
  141.             initialize();
  142.            
  143.             p.add(userNameField);
  144.             p.add(passwordField);
  145.             p.add(connect);
  146.             p.add(signup);
  147.             p.add(login);  
  148.             p.add(scrollPaneOnline);
  149.             p.add(scrollPaneChatrooms);
  150.             p.add(scrollPaneText);
  151.             p.add(messageField);
  152.             p.add(send);
  153.             add(p);
  154.             setVisible(true);    
  155.         }
  156.        
  157.         public static void main(String[] args){
  158.             new MainFrame();
  159.         }
  160.        
  161. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement