Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

thread with an instance of RemoteReader.Cant seem to get it.

$
0
0
I need to make a client with GUI. Here is what the teacher told us to do.
Structure of your class:
//many import statements
public class  ChatClient  {
   public class  ChatClient() {
   //Initialize the GUI components and other data.
  
   }
   
   public void launchFrame()
   {
   //make the GUI
   //eastablish the socket connection
   //make a thread and start it with an instance of RemoteReader
   //create the streams from the socket connection
   //make gui visible
   }
 
   public class SendListener implements ActionListener
   {
       public void actionPerformed(ActionEvent e)
       {
          //get info from text field
          //send it to the server
          //clear the text field
       }
    }
   
    private class RemoteReader implements Runnable
    {
       public void run()
       {
         while (true)
         {
           //do stuff here to continously read from the server using the input stream
           //put the received text into the text area
          
         }
        
       }
     }


And here is what I did. Please help?


import java.net.*;

import java.io.*;
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;





public class BasicChatCLient extends JFrame   {
	

	private JTextArea ta;
	private JScrollPane sbrText;
	PrintWriter writer;
	 String strClientName;
  
	private JTextField tf;
	private JLabel Label;
	private JButton btnQuit,btnSend;
	Socket clientSocket = null;
	ServerSocket serverSocket=null ;
	PrintWriter out = null;
	BufferedReader in = null;
	
	
public BasicChatCLient(Socket clientSocket) {
	
	super("BasicChatCLient");
	this.clientSocket = clientSocket;


  tf = new JTextField(50);
  ta = new JTextArea(10,50);
 sbrText= new JScrollPane(ta);
 Label = new JLabel("Chat Program", JLabel.CENTER);
 btnQuit = new JButton("Quit");
 btnSend = new JButton("Send ");

}
public BasicChatCLient() {
	
	

  tf = new JTextField(50);
  ta = new JTextArea(10,50);
 sbrText= new JScrollPane(ta);
 Label = new JLabel("Chat Program", JLabel.CENTER);
 btnQuit = new JButton("Quit");
 btnSend = new JButton("Send ");

}
public void launchFrame()

{
	Thread t1 = new Thread(RemoteReader(tf));
	t1.start();

	btnSend.addActionListener(new SendButtonListener());
	btnQuit.addActionListener(new ExitButtonListener());
	this.setLayout(new BorderLayout(1,1));
	
 sbrText.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
 sbrText.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

Label.setFont(new Font("Serif", Font.BOLD, 18));
Label.setOpaque(true);
Label.setBackground(Color.white);
Label.setOpaque(true);


ta.setEditable(false);
tf.setBackground(Color.white);
ta.setBackground(Color.white);
JPanel p3= new JPanel();
p3.setLayout(new BorderLayout());
p3.add(Label,BorderLayout.NORTH);

JPanel p1 = new JPanel();

p1.setLayout(new BorderLayout());
p1.add(sbrText, BorderLayout.CENTER);
p1.add(tf, BorderLayout.SOUTH);





JPanel p2 = new JPanel(new GridLayout(2,1));

p2.add(btnSend,BorderLayout.NORTH);
p2.add(btnQuit,BorderLayout.SOUTH);
this.add(p1,BorderLayout.WEST);

this.add(p2, BorderLayout.EAST);
this.add(p3, BorderLayout.NORTH);
this.setTitle("Chat Client");




 

			


}	
public class ExitButtonListener implements ActionListener 
{ public void actionPerformed(ActionEvent ev) { 
	 System.exit(0); 
	 } 
} 

public class SendButtonListener implements ActionListener 
{ 
	
	
	public void actionPerformed(ActionEvent ev)
{ 
	
	
	try { 
	 writer.println(tf.getText());
	 writer.flush(); } catch(Exception ex) 
	 { ex.printStackTrace(); } tf.setText("");
	 tf.requestFocus();  }
}


private class RemoteReader implements Runnable
{
   public void run()
   {
	   try {
           InputStream is = clientSocket.getInputStream();
           ObjectInputStream ois = new ObjectInputStream(is);
           while (true) {
               String strMsg = (String) ois.readObject();
               ta.append("\n" + strClientName + ":" + strMsg);
           }
       } catch (Exception e) {
           e.printStackTrace();
       }
   }
  

}


public static void main (String []args) throws IOException
{		
	

	Socket kkSocket = null;
	PrintWriter out = null;
	BufferedReader in = null;

	try {
		kkSocket = new Socket("127.0.0.1", 4444);
		out = new PrintWriter(kkSocket.getOutputStream(), true);
		in = new BufferedReader(new InputStreamReader(kkSocket.getInputStream()));
	} catch (UnknownHostException e) {
		System.err.println("Could not connect to 127.0.0.1.");
		System.exit(1);
	} catch (IOException e) {
		System.err.println("Couldn't get I/O for the connection to 127.0.0.1.");
		System.exit(1);
	}

	
BasicChatCLient gui = new BasicChatCLient();

gui.launchFrame();
gui.setVisible(true);
gui.pack();
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


}

}


Viewing all articles
Browse latest Browse all 51036

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>