Advertisement
anas_harby

Untitled

Jul 7th, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.34 KB | None | 0 0
  1. package com.theharbychat.harbychat;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.EventQueue;
  5.  
  6. import javax.swing.JFrame;
  7. import javax.swing.JPanel;
  8. import javax.swing.border.EmptyBorder;
  9. import java.awt.GridBagLayout;
  10. import javax.swing.JTextArea;
  11. import javax.swing.UIManager;
  12.  
  13. import java.awt.GridBagConstraints;
  14. import javax.swing.JButton;
  15. import java.awt.Insets;
  16. import java.awt.TexturePaint;
  17.  
  18. import javax.swing.JTextField;
  19. import java.awt.event.ActionListener;
  20. import java.awt.event.ActionEvent;
  21. import java.awt.event.KeyAdapter;
  22. import java.awt.event.KeyEvent;
  23.  
  24. public class Client extends JFrame {
  25.    
  26.     private static final long serialVersionUID = 1L;
  27.     private JPanel contentPane;
  28.     private String username, address;
  29.     private int port;
  30.     private JTextField txtMessage;
  31.     private JTextArea txtrChatbox;
  32.    
  33.     public Client(String clientName, String clientAddress, int clientPort) {
  34.         try {
  35.             UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  36.         } catch (Exception e) {
  37.             e.printStackTrace();
  38.         }
  39.         username = clientName;
  40.         address = clientAddress;
  41.         port = clientPort;
  42.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  43.         setSize(800, 520);
  44.         setLocationRelativeTo(null);
  45.         setTitle("Chat Client");
  46.         contentPane = new JPanel();
  47.         contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  48.         setContentPane(contentPane);
  49.         GridBagLayout gbl_contentPane = new GridBagLayout();
  50.         gbl_contentPane.columnWidths = new int[]{60, 690, 30, 10}; //Sum = 800
  51.         gbl_contentPane.rowHeights = new int[]{10, 470, 40}; //Sum = 500
  52.         gbl_contentPane.columnWeights = new double[]{1.0, 1.0};
  53.         gbl_contentPane.rowWeights = new double[]{1.0, Double.MIN_VALUE};
  54.         contentPane.setLayout(gbl_contentPane);
  55.        
  56.         txtrChatbox = new JTextArea();
  57.         GridBagConstraints gbc_txtrChatbox = new GridBagConstraints();
  58.         gbc_txtrChatbox.insets = new Insets(0, 0, 5, 5);
  59.         gbc_txtrChatbox.fill = GridBagConstraints.BOTH;
  60.         gbc_txtrChatbox.gridx = 1;
  61.         gbc_txtrChatbox.gridy = 1;
  62.         gbc_txtrChatbox.insets = new Insets(0, 5, 0, 0);
  63.         contentPane.add(txtrChatbox, gbc_txtrChatbox);
  64.        
  65.         txtMessage = new JTextField();
  66.         txtMessage.addKeyListener(new KeyAdapter() {
  67.             public void keyPressed(KeyEvent event) {
  68.                 if (event.getKeyCode() == KeyEvent.VK_ENTER) {
  69.                     sendMessage(txtMessage.getText());
  70.                 }
  71.             }
  72.         });
  73.         GridBagConstraints gbc_txtMessage = new GridBagConstraints();
  74.         gbc_txtMessage.insets = new Insets(0, 0, 0, 5);
  75.         gbc_txtMessage.fill = GridBagConstraints.HORIZONTAL;
  76.         gbc_txtMessage.gridx = 1;
  77.         gbc_txtMessage.gridy = 2;
  78.         contentPane.add(txtMessage, gbc_txtMessage);
  79.         txtMessage.setColumns(10);
  80.        
  81.         JButton btnSend = new JButton("Send");
  82.         btnSend.addActionListener(new ActionListener() {
  83.             public void actionPerformed(ActionEvent event) {
  84.                 sendMessage(txtMessage.getText());
  85.             }
  86.         });
  87.         GridBagConstraints gbc_btnSend = new GridBagConstraints();
  88.         gbc_btnSend.insets = new Insets(0, 0, 0, 5);
  89.         gbc_btnSend.gridx = 2;
  90.         gbc_btnSend.gridy = 2;
  91.         contentPane.add(btnSend, gbc_btnSend);
  92.        
  93.         console("has just connected!");
  94.         setVisible(true);
  95.         txtMessage.requestFocus();
  96.     }
  97.    
  98.     private void console (String message) {
  99.         txtrChatbox.append(username + " " + message + "\n");
  100.     }
  101.    
  102.     private void sendMessage(String message) {
  103.         txtrChatbox.append(username + ": " + message + "\n");
  104.         txtMessage.setText("");
  105.     }
  106.    
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement