package mychat;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.net.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class ClientFrame {
private String name;
private JFrame frame;
private JPanel panel;
private JLabel[] label;
private JButton button1;
private JTextField[] text;
private JTextArea area;
private JButton button2;
private JPanel panel2;
private JScrollPane scroll;
private Client client;
public ClientFrame() {
frame = new JFrame("客户端");
panel = new JPanel();
label = new JLabel[3];
button1 = new JButton("连接");
text = new JTextField[4];
area = new JTextArea();
button2 = new JButton("发送");
panel2 = new JPanel();
scroll = new JScrollPane(area);
initLabel(label);
initText(text);
panel.setLayout(new FlowLayout(FlowLayout.LEFT));
for (int i = 0; i < 3; i++) {
panel.add(label[i]);
panel.add(text[i]);
}
panel.add(button1);
panel2.add(text[3]);
panel2.add(button2);
area.setEditable(false);
frame.add(panel, BorderLayout.NORTH);
frame.add(scroll, BorderLayout.CENTER);
frame.add(panel2, BorderLayout.SOUTH);
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Socket s=null;
try {
s = new Socket(text[1].getText(),Integer.valueOf(text[2].getText()));
} catch (NumberFormatException e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
} catch (UnknownHostException e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
} catch (IOException e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
}
client=new Client(ClientFrame.this,s);
client.getOut().println(get());
client.getOut().flush();
client.start();
}
});
button2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
send();
}
});
frame.setSize(800, 600);
frame.setLocation(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
private void initLabel(JLabel[] label) {
label[0] = new JLabel("昵称");
label[1] = new JLabel("IP");
label[2] = new JLabel("端口");
}
private void initText(JTextField[] text) {
text[0] = new JTextField(20);
text[1] = new JTextField(10);
text[2] = new JTextField(8);
text[3] = new JTextField(20);
}
public String get() {
name = text[0].getText();
return name;
}
public JTextArea getArea() {
return area;
}
public void setArea(JTextArea area) {
this.area = area;
}
public void send() { //发送消息
String text = get()+":"+this.text[3].getText(); //得到你输入的消息
this.text[3].setText(""); //在文本域中显示你输入的消息。
client.getOut().println(text); //打印出。
client.getOut().flush(); //清空
}
public static void main(String[] args) {
ClientFrame win=new ClientFrame();
}
}