Почему при выполнении моей Программы, когда я нажимаю Enter, моё приложение зависает?
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import java.io.*;
import java.net.*;
public class KnockKnockUI{
private Socket kkSocket = null;
private PrintWriter out = null;
private BufferedReader in = null;
JTextArea clientArea;
JTextArea serverArea;
public KnockKnockUI(){
establishConnection();
initComponents();
}
public void initComponents(){
JFrame frame = new JFrame("Chat");
frame.setVisible(true);
frame.setSize(320,189);
frame.getContentPane().setLayout(null);
serverArea = new JTextArea();
serverArea.setLineWrap(true);
serverArea.setBounds(10, 11, 284, 45);
frame.getContentPane().add(serverArea);
clientArea = new JTextArea();
clientArea.setBounds(10, 67, 284, 46);
frame.getContentPane().add(clientArea);
JButton btnEnter = new JButton("Enter");
btnEnter.setBounds(96, 124, 89, 23);
frame.getContentPane().add(btnEnter);
btnEnter.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try{
in.readLine();
}catch(Exception e){
}
String fromUser = clientArea.getText();
try {
fromUser = in.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
serverArea.setText(fromUser);
}
});
}
public void establishConnection(){
//Establishes Connection
try {
kkSocket = new Socket("localhost", 4444);
//
out = new PrintWriter(kkSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(kkSocket.getInputStream()));
} catch (UnknownHostException e) {
System.err.println("Don't know about host: taranis.");
System.exit(1);
} catch (IOException e) {
System.err.println("Couldn't get I/O for the connection to: taranis.");
System.exit(1);
}
}
public static void main(String[] args){
KnockKnockUI ui = new KnockKnockUI();
}
}
Это простой чат-клиент, использующий Java, есть другие классы, которые я не включил. как класс Сервера и класс протокола