package Client;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.io.*;
import org.jvnet.substance.skin.*;
/**
* 负责连接服务器
* @author lijiapeng
*
*/
public class Client extends JFrame{
private JMenuBar menuBar=new JMenuBar();
private JMenu system=new JMenu("系统");
private JMenuItem exit=new JMenuItem("退出");
private JTextArea text=new JTextArea();
private JPanel panel=new JPanel();
private String serverName;
private Socket socket;
private Login login;
public Client(String serverName){
super("客户端");
this.serverName=serverName;
setJMenuBar(menuBar);
menuBar.add(system);
system.add(exit);
panel.setLayout(new BorderLayout());
panel.add(text);
add(panel);
setSize(200,150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置窗口的位置居中
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
try{
UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceFieldOfWheatLookAndFeel");
}catch(Exception ex){
ex.printStackTrace();
}
setVisible(true);
exit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
}
/**
* 与服务器取得连接
*/
public void getConnection(){
try{
text.setText("连接中...");
socket=new Socket(InetAddress.getByName(serverName),4000);
if(!socket.isConnected()){
closeConnection();
}
String name=socket.getInetAddress().getHostName();
text.append("\n成功连接到服务器"+name);
login=new Login(socket,serverName,4000);
this.setVisible(false);
login.setVisible(true);
}catch(Exception e1){
e1.printStackTrace();
}
}
public void closeConnection()throws IOException{
socket.close();
}
/**
* 主函数
*/
public static void main(String args[]){
Client client;
if(args.length==0)
client=new Client("127.0.0.1");
else
client=new Client(args[0]);
client.getConnection();
}
}