📄 ccsinterface.java
字号:
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
/**
* 客户端主入口 及其界面程序
* @author ij
*
*/
public class CCSInterface {
JFrame jf;
static JTextArea jtavision;
JTextArea jtaopt;
JButton jb;
JScrollPane jsp;
JScrollPane jsp1;
JPanel jpall = new JPanel();
CardLayout cl = new CardLayout();
JPanel firjp;
JPanel secjp;
JLabel firjl = new JLabel("服务器IP地址:");
JLabel firjl1 = new JLabel("服务器端口:");
JLabel firjl2 = new JLabel("昵称:");
JTextField firjta = new JTextField();
JTextField firjta1 = new JTextField();
JTextField firjta2 = new JTextField();
JLabel jl;
static JList jlist = new JList();
JPanel jp1 = new JPanel();
ChatClientSystem ccs = new ChatClientSystem();
// 操作字符串 isnetadds 初始化信息
// 操作字符串 ismessage 都发送信息
// 操作字符串 ptop 点对点发送信息
// 操作字符串 sendname 所用用户的昵称信息
// 操作字符串 nameerr 昵称错误
String current = "ismessage";
String content;
static String cliname = "lulu";
static ChatMessage receivecm = new ChatMessage();
byte[] serverip = new byte[4];
/**
* 客户端界面
*/
public void runInterface() {
jf = new JFrame();
jf.setSize(400, 400);
jtaopt = new JTextArea(4, 20);
jtavision = new JTextArea(5, 20);
//按钮及其监听
jb = new JButton("发送");
jb.addActionListener(new ButtonAction());
JButton jbfir = new JButton("确定");
jbfir.addActionListener(new ButtonAction());
jp1.add(jbfir);
jp1.add(jb);
jp1.setLayout(cl);
jsp = new JScrollPane(jtavision);
jsp1 = new JScrollPane(jtaopt);
// jp.setSize(30, 100);
GridLayout gl = new GridLayout(10, 1);
//中间翻页界面
firjp = new JPanel();
firjp.add(firjl);
firjp.add(firjta);
firjp.add(firjl1);
firjp.add(firjta1);
firjp.add(firjl2);
firjp.add(firjta2);
firjp.setLayout(gl);
jpall.add(firjp);
jpall.add(jsp);
jpall.setLayout(cl);
jl = new JLabel();
jlist.setFixedCellWidth(100);
//加到JFRAME中
jf.getContentPane().add(jl,BorderLayout.NORTH);
jf.getContentPane().add(jsp1, BorderLayout.SOUTH);
jf.getContentPane().add(jpall, BorderLayout.CENTER);
jf.getContentPane().add(jlist, BorderLayout.WEST);
jf.getContentPane().add(jp1, BorderLayout.EAST);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
/**
* 内部类 实现接口ActionListener
* 响应监听 进行取信息判断运行
* @author ij
*
*/
class ButtonAction implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("***************");
//当响应“确定”时,取数据处理初始化客户端
//当响应“发送”时,取数据处理发送给服务器端
if (e.getActionCommand().equals("确定")) {
String ip = firjta.getText();
String port = firjta1.getText();
cliname = firjta2.getText();
//检查ip
if(!CSUtil.checkip(ip)){
firjl.setText("输入地址格式不正确,请重新输入");
return;
}
//检查port
if(!CSUtil.checkport(port)){
firjl1.setText("输入端口号格式不正确,请重新输入");
return;
}
int portint = Integer.parseInt(port);
String[] arrayip = ip.split("[.]");
byte[] byteip = new byte[4];
for (int i = 0; i < 4; i++) {
byteip[i] = (byte)(Integer.parseInt(arrayip[i]));
serverip[i] = byteip[i];
}
//翻动Panel到下一个card
cl.next(jpall);
cl.next(jp1);
jl.setText("我的昵称:"+cliname);
//客户端初始化
ccs.initCCS(serverip,portint);
try {
ccs.send("isnetadds", cliname, InetAddress.getLocalHost()
.getAddress(), "a");
} catch (UnknownHostException e1) {
e1.printStackTrace();
}
}
else if(e.getActionCommand().equals("发送")){
String name = (String) jlist.getSelectedValue();
//判断是点对点发送 还是全发
if (name == null) {
ccs.send("ismessage", cliname, serverip, jtaopt.getText());
}else if(name.equals("发送给聊天室")){
ccs.send("ismessage", cliname, serverip, jtaopt.getText());
} else {
ccs.send("ptop", name, serverip, jtaopt.getText());
}
jtaopt.setText("");
}
}
}
public static void main(String[] args) {
CCSInterface ccsi = new CCSInterface();
ccsi.runInterface();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -