package XmppClient;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
/**
* 客户端界面类
*
* @author dell
*
*/
public class MainClientUI {
private static JFrame jf_login, jf_chating, jf_register;
private static JButton btn_send, btn_register, btn_login, btn_reg_enter;
private static JTextArea jta_input, jta_output;
private static JLabel lab_port, lab_ip_adress, lab_idcode, lab_psw,
lab_reg_idcode, lab_reg_psw;
private static JTextField jtf_idcode, jtf_psw, jtf_reg_idcode, jtf_reg_psw,
jtf_port, jtf_ip;
private static JComboBox jcb_user_list;// 在线用户下拉列表
private static ClientCreAndChating cca;
public static void createLoginUI() {// 初始化登陆界面
lab_port = new JLabel("端口号:");
lab_ip_adress = new JLabel("IP地址:");
lab_idcode = new JLabel("用户名:");
lab_psw = new JLabel("密码:");
jf_login = new JFrame("登陆");
jf_login.setSize(150, 300);
jf_login.setDefaultCloseOperation(3);
jf_login.setResizable(false);
jf_login.setLayout(new FlowLayout());
btn_login = new JButton("登陆");
btn_register = new JButton("注册");
jtf_idcode = new JTextField(10);
jtf_psw = new JTextField(10);
jtf_port = new JTextField(5);
jtf_ip = new JTextField(10);
jf_login.add(lab_port);
jf_login.add(jtf_port);
jf_login.add(lab_ip_adress);
jf_login.add(jtf_ip);
jf_login.add(lab_idcode);
jf_login.add(jtf_idcode);
jf_login.add(lab_psw);
jf_login.add(jtf_psw);
jf_login.add(btn_login);
jf_login.add(btn_register);
btn_register.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
action_btn_register();
}
});
btn_login.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
action_btn_login();
}
});
jf_login.setVisible(true);
}
public static void createRegisterUI() {// 初始化注册界面
lab_reg_idcode = new JLabel("用户名:");
lab_reg_psw = new JLabel("密码");
btn_reg_enter = new JButton("确定");
jtf_reg_idcode = new JTextField(10);
jtf_reg_psw = new JTextField(10);
jf_register = new JFrame("注册");
jf_register.setSize(200, 200);
jf_register.setResizable(false);
jf_register.setDefaultCloseOperation(2);
jf_register.setLayout(new FlowLayout());
jf_register.add(lab_reg_idcode);
jf_register.add(jtf_reg_idcode);
jf_register.add(lab_reg_psw);
jf_register.add(jtf_reg_psw);
jf_register.add(btn_reg_enter);
btn_reg_enter.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
action_btn_reg_enter();
}
});
jf_register.setVisible(true);
}
public static void createChatingUI() {// 初始化聊天界面
jf_chating = new JFrame("聊天室v1.0");
jf_chating.setSize(300, 450);
jf_chating.setLayout(new FlowLayout());
jf_chating.setResizable(false);
jf_chating.setDefaultCloseOperation(3);
btn_send = new JButton("发送");
jta_input = new JTextArea(10, 20);
jta_output = new JTextArea(10, 20);
jta_output.setEditable(false);
JScrollPane jsp_in = new JScrollPane(jta_input);
JScrollPane jsp_out = new JScrollPane(jta_output);
jcb_user_list = new JComboBox();
jf_chating.add(jsp_out);
jf_chating.add(jsp_in);
jf_chating.add(jcb_user_list);
jf_chating.add(btn_send);
btn_send.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
action_btn_send();
}
});
jf_chating.setVisible(true);
}
private static void action_btn_send() {// 发送消息的按钮动作
String msg = XmlProcess
.toChatXML(cca.getUserInfo().getUserIDcode(), jcb_user_list
.getSelectedItem().toString(), jta_input.getText());
// 如果发送的对象不是自己的话,在自己这边也要显示自己说的话
if (!jcb_user_list.getSelectedItem().equals("所有人")) {
String msg2me = XmlProcess.toChatXML(cca.getUserInfo()
.getUserIDcode(), cca.getUserInfo().getUserIDcode(),
jta_input.getText());
cca.sendMsg2server(msg2me);
}
cca.sendMsg2server(msg);
jta_input.setText("");
}
private static void action_btn_register() {// 注册的按钮动作
createRegisterUI();
}
private static void action_btn_login() {// 登陆按钮动作
jf_login.dispose();
UserInfo user = new UserInfo("no name", jtf_idcode.getText(),
jtf_psw.getText());
cca = new ClientCreAndChating(Integer.valueOf(jtf_port.getText()),
jtf_ip.getText(), user);
cca.start();
}
private static void action_btn_reg_enter() {// 注册确定按钮动作
UserInfo user = new UserInfo("no name", jtf_reg_idcode.getText(),
jtf_reg_psw.getText());
ClientRegThread crt = new ClientRegThread(Integer.valueOf(jtf_port
.getText()), jtf_ip.getText(), user);
if (crt.isRegister()) {
JOptionPane.showMessageDialog(null, "注册成功!");
} else {
JOptionPane.showMessageDialog(null, "注册失败!");
}
}
/**
* 更新在线用户表
*/
public static void updataOnlineList(String onlineList) {
jcb_user_list.removeAllItems();
jcb_user_list.addItem("所有人");
StringBuffer stb = new StringBuffer();
for (int i = 0; i < onlineList.length(); i++) {
if (onlineList.charAt(i) == ',') {
String Info = new String(stb.toString().trim());
stb = new StringBuffer();
if (!Info.equals(cca.getUserInfo().getUserIDcode())) {
jcb_user_list.addItem(Info);
}
} else {
stb.append(onlineList.charAt(i));
}
}
String Info = new String(stb.toString().trim());
stb = new StringBuffer();
if (!Info.equals(cca.getUserInfo().getUserIDcode())) {
jcb_user_list.addItem(Info);
}
// javax.swing.SwingUtilities.updateComponentTreeUI(jcb_user_list);
}
/**
* 在输出域追加信息
*
* @param msg
*/
public static void appendInfo(String msg) {
jta_output.append(msg);
}
}
- 1
- 2
- 3
- 4
前往页