Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fr.crafttim.chat.client.ui;
- import java.awt.BorderLayout;
- import java.awt.GridBagConstraints;
- import java.awt.GridBagLayout;
- import java.awt.Insets;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JTextField;
- import javax.swing.JTextPane;
- import javax.swing.SwingUtilities;
- import fr.crafttim.chat.client.ChatClient;
- public class ChatWindow extends JFrame implements ActionListener{
- private static final long serialVersionUID = -5803068651600629507L;
- private ChatClient chatClient;
- private JTextPane textPane;
- private JTextField tInput;
- public ChatWindow(ChatClient chatClient){
- this.chatClient = chatClient;
- getContentPane().setLayout(new BorderLayout(0, 0));
- JPanel panel = new JPanel();
- getContentPane().add(panel, BorderLayout.SOUTH);
- GridBagLayout gbl_panel = new GridBagLayout();
- gbl_panel.columnWidths = new int[]{0, 0, 0};
- gbl_panel.rowHeights = new int[]{0, 0, 0};
- gbl_panel.columnWeights = new double[]{1.0, 0.0, Double.MAX_VALUE};
- gbl_panel.rowWeights = new double[]{1.0, 0.0, Double.MIN_VALUE};
- panel.setLayout(gbl_panel);
- tInput = new JTextField();
- GridBagConstraints gbc_input = new GridBagConstraints();
- gbc_input.insets = new Insets(0, 0, 0, 5);
- gbc_input.anchor = GridBagConstraints.NORTH;
- gbc_input.fill = GridBagConstraints.HORIZONTAL;
- gbc_input.gridx = 0;
- gbc_input.gridy = 0;
- panel.add(tInput, gbc_input);
- tInput.setColumns(10);
- tInput.setActionCommand("send");
- tInput.addActionListener(this);
- JButton bSend = new JButton("Send");
- GridBagConstraints gbc_bSend = new GridBagConstraints();
- gbc_bSend.gridx = 0;
- gbc_bSend.gridy = 0;
- panel.add(bSend, gbc_bSend);
- bSend.setActionCommand("send");
- bSend.addActionListener(this);
- JScrollPane scrollPane = new JScrollPane();
- getContentPane().add(scrollPane, BorderLayout.CENTER);
- textPane = new JTextPane();
- textPane.setEditable(false);
- scrollPane.setViewportView(textPane);
- }
- public void postLine(final String line){
- Runnable doLater = new Runnable() {
- @Override
- public void run() {
- String old = textPane.getText();
- String nText = null;
- if(!old.equals("")){
- nText = old + System.getProperty("line.separator") + line;
- } else {
- nText = line;
- }
- textPane.setText(nText);
- }
- };
- SwingUtilities.invokeLater(doLater);
- }
- @Override
- public void actionPerformed(ActionEvent e) {
- if(e.getActionCommand().equals("send")){
- String t = tInput.getText();
- if(!t.equals("")){
- chatClient.getClientSide().write(t);
- tInput.setText("");
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment