Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.*;
- public class GUIForClient extends JFrame implements ActionListener
- {
- private JLabel label, label2;
- private JTextField jtfMessage, jtfServer, jtfPort;
- private JButton connect, exit;
- private JTextArea jtaSouth;
- private boolean isConnected;
- private Client client;
- private int initialPort;
- private String initialHost;
- /**
- * Constructor for objects of class GUIForClient
- */
- public GUIForClient(String host, int port)
- {
- super("Messaging Client");
- initialHost = host;
- initialPort = port;
- JPanel north = new JPanel(new GridLayout(3,1));
- JPanel serverPortPanel = new JPanel(new GridLayout(1,5,1,3));
- jtfServer = new JTextField(host);
- jtfPort = new JTextField(port);
- jtfPort.setHorizontalAlignment(SwingConstants.RIGHT);
- serverPortPanel.add(new JLabel("Name or IP Address of server: "));
- serverPortPanel.add(jtfServer);
- serverPortPanel.add(new JLabel("Connection on port: "));
- serverPortPanel.add(jtfPort);
- north.add(serverPortPanel);
- label = new JLabel("Please enter your name below.", SwingConstants.CENTER);
- north.add(label);
- jtfMessage = new JTextField();
- north.add(jtfMessage);
- add(north, BorderLayout.NORTH);
- jtaSouth = new JTextArea("Welcome!\n", 60, 50);
- JPanel center = new JPanel(new GridLayout(1,1));
- center.add(new JScrollPane(jtaSouth));
- jtaSouth.setEditable(false);
- add(center, BorderLayout.CENTER);
- connect = new JButton("Connect");
- connect.addActionListener(this);
- exit = new JButton("Exit");
- exit.addActionListener(this);
- JPanel south = new JPanel();
- south.add(connect);
- south.add(exit);
- add(south, BorderLayout.SOUTH);
- setDefaultCloseOperation(EXIT_ON_CLOSE);
- setSize(1200, 600);
- setVisible(true);
- jtfMessage.requestFocus();
- }
- public void appendStuff(String str)
- {
- jtaSouth.append(str);
- jtaSouth.setCaretPosition(jtaSouth.getText().length() - 1);
- }
- public void ifConnectionFails()
- {
- connect.setEnabled(true);
- exit.setEnabled(true);
- label.setText("Please enter your name below.");
- jtfMessage.setText(" ");
- jtfServer.setText("" + initialHost);
- jtfPort.setText("" + initialPort);
- jtfPort.setEditable(true);
- jtfServer.setEditable(true);
- jtfMessage.removeActionListener(this);
- isConnected = false;
- }
- public void actionPerformed(ActionEvent ae)
- {
- Object obj = ae.getSource();
- if(obj == exit)
- {
- client.sendMessage(new messageType(messageType.EXIT, ""));
- return;
- }
- if(isConnected)
- {
- client.sendMessage(new messageType(messageType.MESSAGE, jtfMessage.getText()));
- jtfMessage.setText("");
- return;
- }
- if(obj == connect)
- {
- String username = jtfMessage.getText().trim();
- if(username.length() == 0)
- {
- return;
- }
- String serverName = jtfServer.getText().trim();
- if(serverName.length() == 0)
- {
- return;
- }
- String portNumber = jtfPort.getText().trim();
- if(portNumber.length() == 0)
- {
- return;
- }
- int port = 0;
- try
- {
- port = Integer.parseInt(portNumber);
- }
- catch(Exception e)
- {
- }
- client = new Client(serverName, port, username, this);
- if(!client.start())
- {
- return;
- }
- jtfMessage.setText("");
- label.setText("Type your message below.");
- isConnected = true;
- connect.setEnabled(false);
- jtfServer.setEditable(false);
- jtfPort.setEditable(false);
- jtfMessage.addActionListener(this);
- }
- }
- public static void main(String[] args)
- {
- new GUIForClient("localhost", 7257);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement