package business;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
import java.util.StringTokenizer;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import util.Constant;
public class Client extends JFrame implements ActionListener{
/**
*
*/
private static final long serialVersionUID = 1L;
static String driver = "com.mysql.jdbc.Driver";
static String url = "jdbc:mysql://localhost:3306/jdbc";
static String username = "root";
static String password = "1";
private static Statement stmt = null;
JPanel jpane = new JPanel();
static JTextArea jtextarea = new JTextArea();
JTextField jtextfield = new JTextField();
JTextField jtextfield1 = new JTextField();
JButton bu2 = new JButton("消息记录");
JLabel jlable = new JLabel("姓 名:");
JButton bu1 = new JButton("发送");
JFrame j = new JFrame();
private Socket socket;
JFrame frame = new JFrame();
private ObjectInputStream in;
private ObjectOutputStream out;
Thread th;
Reciver reciver = new Reciver();
public void client(){
jtextarea.setBounds(0, 0, 300, 300);
jtextfield.setBounds(0, 330, 300, 20);
jtextfield1.setBounds(310, 50, 60, 20);
jlable.setBounds(310, 30, 60, 20);
bu1.setBounds(330, 330, 60, 20);
bu2.setBounds(301, 100, 100, 20);
j.setBounds(400, 300, 400, 400);
j.add(jpane);
jpane.setLayout(null);
jpane.add(bu2);
jpane.add(jtextarea);
jpane.add(jtextfield);
jpane.add(bu1);
jpane.add(jtextfield1);
jpane.add(jlable);
j.setVisible(true);
bu1.addActionListener(this);
bu2.addActionListener(this);
jtextarea.append("连接中........"+"\n");
try {
socket = new Socket(Constant.SERVER_HOST,Constant.LISTEN_PORT);
jtextarea.append("连接至:"+socket.getInetAddress().getHostName()+"\n");
jtextarea.append("-----------------------------------------------------------------------"+"\n");
out = new ObjectOutputStream(socket.getOutputStream());
in = new ObjectInputStream(socket.getInputStream());
th = new Thread(reciver);
th.start();
}catch (Exception e) {
e.printStackTrace();
}
}
private class Reciver implements Runnable {
//StringTokenizer sinfo;
public void run(){
if(jtextfield1.getText().equals(""))
{
try{
String str = in.readUTF();
StringTokenizer st = new StringTokenizer(str,":");
String head = st.nextToken();
String name = st.nextToken();
jtextfield1.setText(name);
j.setTitle(name);
}catch(Exception e)
{
e.printStackTrace();
}
}
try {
Class.forName(driver);
System.out.println("加载成功");
Connection con;
try {
con = DriverManager.getConnection(url, username, password);
System.out.println("加载成功");
stmt = con.createStatement();
System.out.println("加载成功");
} catch (Exception e) {
e.printStackTrace();
}
//String xiaoxijilu = jtextarea.getText();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
while(true)
{
try {
String str;
try {
str = in.readUTF();
jtextarea.append(str+"\n");
String ins = "insert into xiaoxijilu values('"+str+"')";
stmt.executeUpdate(ins);
System.out.println("xiaoxijilu");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("发送"))
{
try {
out.writeUTF(jtextfield1.getText()+"说:"+jtextfield.getText());
out.flush();
} catch (IOException e1) {
e1.printStackTrace();
}
jtextfield.setText("");
}
if(e.getActionCommand().equals("消息记录"))
{
new chakanxiaoxi();
}
}
public static void main(String[] args) {
new Client().client();
}
}