📄 applypanel.java
字号:
/* * @(#) ApplyPanel.java * Copyright 2004 HWStudio. All rights reserved. */package hws.item.smart.panel.function.chat;//导入核心Java类库import java.io.IOException;import java.io.StringReader;import java.awt.Insets;import java.awt.FlowLayout;import java.awt.GridBagLayout;import java.awt.GridBagConstraints;import java.net.MalformedURLException;import java.util.Vector;import javax.swing.JPanel;import javax.swing.JLabel;import javax.swing.JButton;import javax.swing.JTextField;import javax.swing.JOptionPane;import javax.swing.JPasswordField;//导入自定义Java类库import hws.item.smart.Smart;import hws.item.smart.misc.ImageShop;import hws.item.smart.misc.SBChanger;import hws.item.smart.misc.XMLConfig;import hws.item.smart.misc.BorderShop;import hws.item.smart.misc.PopToolkit;import hws.item.smart.misc.StringShop;import hws.item.smart.panel.function.chat.misc.OptionalInfoPanel1;import hws.item.smart.action.chat.apply.ResetInfoAction;import hws.item.smart.action.chat.apply.ApplyAccountAction;//导入第三方Java类库import org.jdom.Element;import org.jdom.Document;import org.jdom.JDOMException;import org.jdom.input.SAXBuilder;import org.jdom.output.XMLOutputter;import org.apache.xmlrpc.XmlRpc;import org.apache.xmlrpc.XmlRpcClient;import org.apache.xmlrpc.XmlRpcRequest;import org.apache.xmlrpc.XmlRpcException;/** * 申请账号面板 * * @version 0.1 2005-08-19 * @author Hwerz */public class ApplyPanel extends JPanel { /*------------------------------------------------------------------------* * 属性定义 * *------------------------------------------------------------------------*/ /** * 该类自身的一个静态引用 */ private static ApplyPanel panel; /** * 基本信息面板 */ private BasicInfoPanel basicInfoPanel; /** * 可选信息面板 */ private OptionalInfoPanel1 optionalInfoPanel; /*------------------------------------------------------------------------* * 构造函数 * *------------------------------------------------------------------------*/ /** * 构造函数为私有,这样在整个运行过程中该类就只能有一个实例 */ private ApplyPanel() { super(new GridBagLayout()); //工具栏面板 GridBagConstraints constraints = new GridBagConstraints( //gridx, gridy 0, 0, //gridwidth, gridheight 1, 1, //weightx, weighty 1.0, 0.0, //anchor GridBagConstraints.NORTH, //fill GridBagConstraints.HORIZONTAL, //insets(top,left,bottom,right) new Insets(5, 0, 0, 0), //ipadx, ipady 0, 0); add(new Toolbar(), constraints); //基本信息面板 basicInfoPanel = new BasicInfoPanel(); basicInfoPanel.setBorder(BorderShop.BASIC_INFO_BORDER); constraints.gridy = 1; constraints.insets = new Insets(0, 10, 0, 10); add(basicInfoPanel, constraints); //可选信息面板 optionalInfoPanel = new OptionalInfoPanel1(); optionalInfoPanel.setBorder(BorderShop.OPTIONAL_INFO_BORDER); constraints.gridy = 2; constraints.weighty = 1.0; constraints.fill = GridBagConstraints.BOTH; constraints.insets = new Insets(10, 10, 3, 10); add(optionalInfoPanel, constraints); } /*------------------------------------------------------------------------* * 公共方法 * *------------------------------------------------------------------------*/ /** * 对该类提供的一个全局访问点,用来实例化该对象 * * @return 该类唯一的一个实例 */ public static ApplyPanel getInstance() { if (panel == null) { panel = new ApplyPanel(); } return panel; } /** * 申请 */ public void apply() { if (basicInfoPanel.getNickname().length() == 0) { JOptionPane.showMessageDialog(Smart.getInstance(), "昵称不可为空!", StringShop.HINT_TITLE, JOptionPane.INFORMATION_MESSAGE); } else { String password1 = basicInfoPanel.getPassword(); String password2 = basicInfoPanel.getConfirm(); if (password1.equals(password2) == false) { JOptionPane.showMessageDialog(Smart.getInstance(), "两次密码输入不一致!", StringShop.HINT_TITLE, JOptionPane.INFORMATION_MESSAGE); } else { try { XmlRpc.setDriver("org.apache.xerces.parsers.SAXParser"); XmlRpcClient client = new XmlRpcClient(genURL()); String response = client.execute(genRequest()).toString(); SAXBuilder builder = new SAXBuilder(); StringReader reader = new StringReader(response); Document document = builder.build(reader); Element root = document.getRootElement(); String id = root.getChild("ID").getText(); if (PopToolkit.checkNumber(id) == true) { StringBuffer msg = new StringBuffer(); msg.append("账号申请成功,您的账号是“"); msg.append(id); msg.append("”!"); JOptionPane.showMessageDialog(Smart.getInstance(), msg.toString(), StringShop.HINT_TITLE, JOptionPane.INFORMATION_MESSAGE); reset(); } else { JOptionPane.showMessageDialog(Smart.getInstance(), "账号申请失败,请稍候再试!", StringShop.HINT_TITLE, JOptionPane.INFORMATION_MESSAGE); } } catch (ClassNotFoundException e) { JOptionPane.showMessageDialog(Smart.getInstance(), "系统找不到类库“org.apache.xerces.parsers.SAXParser”!", StringShop.HINT_TITLE, JOptionPane.INFORMATION_MESSAGE); } catch (MalformedURLException e) { e.printStackTrace(); } catch (XmlRpcException e) { e.printStackTrace(); } catch (IOException e) { JOptionPane.showMessageDialog(Smart.getInstance(), "注册服务已关闭,请稍候再试!", StringShop.HINT_TITLE, JOptionPane.INFORMATION_MESSAGE); } catch (JDOMException e) { JOptionPane.showMessageDialog(Smart.getInstance(), "账号申请失败,请稍候再试!", StringShop.HINT_TITLE, JOptionPane.INFORMATION_MESSAGE); } } } } /** * 重置 */ public void reset() { basicInfoPanel.reset(); optionalInfoPanel.reset(); } /*------------------------------------------------------------------------* * 私有方法 * *------------------------------------------------------------------------*/ /** * 生成请求URL * * @return 生成的请求URL */ private String genURL() { StringBuffer url = new StringBuffer(); url.append("http://"); url.append(XMLConfig.getServicesIP()); url.append(":"); url.append(XMLConfig.getRegisterPort()); url.append("/"); return url.toString(); } /** * 生成XML-RPC请求消息 * * @return 生成的XML-RPC请求消息 */ private XmlRpcRequest genRequest() { //请求方法 StringBuffer method = new StringBuffer(); method.append(XMLConfig.getRegisterClass()); method.append("."); method.append(XMLConfig.getRegisterMethod()); //请求参数
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -