craftim_74

ChatWindow.java

Oct 30th, 2016
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.75 KB | None | 0 0
  1. package fr.crafttim.chat.client.ui;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.GridBagConstraints;
  5. import java.awt.GridBagLayout;
  6. import java.awt.Insets;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9.  
  10. import javax.swing.JButton;
  11. import javax.swing.JFrame;
  12. import javax.swing.JPanel;
  13. import javax.swing.JScrollPane;
  14. import javax.swing.JTextField;
  15. import javax.swing.JTextPane;
  16. import javax.swing.SwingUtilities;
  17.  
  18. import fr.crafttim.chat.client.ChatClient;
  19.  
  20. public class ChatWindow extends JFrame implements ActionListener{
  21.  
  22.     private static final long serialVersionUID = -5803068651600629507L;
  23.     private ChatClient chatClient;
  24.     private JTextPane textPane;
  25.     private JTextField tInput;
  26.    
  27.     public ChatWindow(ChatClient chatClient){
  28.         this.chatClient = chatClient;
  29.         getContentPane().setLayout(new BorderLayout(0, 0));
  30.  
  31.         JPanel panel = new JPanel();
  32.         getContentPane().add(panel, BorderLayout.SOUTH);
  33.         GridBagLayout gbl_panel = new GridBagLayout();
  34.         gbl_panel.columnWidths = new int[]{0, 0, 0};
  35.         gbl_panel.rowHeights = new int[]{0, 0, 0};
  36.         gbl_panel.columnWeights = new double[]{1.0, 0.0, Double.MAX_VALUE};
  37.         gbl_panel.rowWeights = new double[]{1.0, 0.0, Double.MIN_VALUE};
  38.         panel.setLayout(gbl_panel);
  39.        
  40.         tInput = new JTextField();
  41.         GridBagConstraints gbc_input = new GridBagConstraints();
  42.         gbc_input.insets = new Insets(0, 0, 0, 5);
  43.         gbc_input.anchor = GridBagConstraints.NORTH;
  44.         gbc_input.fill = GridBagConstraints.HORIZONTAL;
  45.         gbc_input.gridx = 0;
  46.         gbc_input.gridy = 0;
  47.         panel.add(tInput, gbc_input);
  48.         tInput.setColumns(10);
  49.         tInput.setActionCommand("send");
  50.         tInput.addActionListener(this);
  51.        
  52.         JButton bSend = new JButton("Send");
  53.         GridBagConstraints gbc_bSend = new GridBagConstraints();
  54.         gbc_bSend.gridx = 0;
  55.         gbc_bSend.gridy = 0;
  56.         panel.add(bSend, gbc_bSend);
  57.         bSend.setActionCommand("send");
  58.         bSend.addActionListener(this);
  59.        
  60.         JScrollPane scrollPane = new JScrollPane();
  61.         getContentPane().add(scrollPane, BorderLayout.CENTER);
  62.        
  63.         textPane = new JTextPane();
  64.         textPane.setEditable(false);
  65.         scrollPane.setViewportView(textPane);
  66.     }
  67.    
  68.     public void postLine(final String line){
  69.         Runnable doLater = new Runnable() {
  70.            
  71.             @Override
  72.             public void run() {
  73.                 String old = textPane.getText();
  74.                 String nText = null;
  75.                 if(!old.equals("")){
  76.                     nText = old + System.getProperty("line.separator") + line;
  77.                 } else {
  78.                     nText = line;
  79.                 }
  80.                 textPane.setText(nText);
  81.             }
  82.         };
  83.         SwingUtilities.invokeLater(doLater);
  84.     }
  85.  
  86.     @Override
  87.     public void actionPerformed(ActionEvent e) {
  88.         if(e.getActionCommand().equals("send")){
  89.             String t = tInput.getText();
  90.             if(!t.equals("")){
  91.                 chatClient.getClientSide().write(t);
  92.                 tInput.setText("");
  93.             }
  94.         }
  95.     }
  96.  
  97. }
Add Comment
Please, Sign In to add comment