把自己曾经写的一个客户间聊天的程序与大家分享(2)


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();
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值