⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 viewpanel.java

📁 该系统是一个基于p2p的即时聊天系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * @(#) ViewPanel.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.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.net.MalformedURLException;import java.util.List;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;import javax.swing.event.ChangeEvent;import javax.swing.event.DocumentEvent;import javax.swing.event.DocumentListener;//导入自定义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.StringShop;import hws.item.smart.panel.function.chat.misc.OptionalInfoPanel1;import hws.item.smart.action.chat.view.ResetInfoAction;import hws.item.smart.action.chat.view.UpdateInfoAction;import hws.item.smart.utility.chat.UserInfo;import hws.item.smart.utility.chat.BasicInfo;//导入第三方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-23 * @author Hwerz */public class ViewPanel extends JPanel {    /*------------------------------------------------------------------------*     *                                属性定义                                *     *------------------------------------------------------------------------*/    /**     * 该类自身的一个静态引用     */    private static ViewPanel panel;    /**     * 基本信息面板     */    private BasicInfoPanel basicInfoPanel;    /**     * 可选信息面板     */    private OptionalInfoPanel2 optionalInfoPanel;    /*------------------------------------------------------------------------*     *                                构造函数                                *     *------------------------------------------------------------------------*/    /**     * 构造函数为私有,这样在整个运行过程中该类就只能有一个实例     */    private ViewPanel() {        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            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 OptionalInfoPanel2();        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 ViewPanel getInstance() {        if (panel == null) {            panel = new ViewPanel();        }        return panel;    }    /**     * 返回当前登录用户的ID     *     * @return 当前登录用户的ID     */    public String getUserID() {        return basicInfoPanel.getID();    }    /**     * 返回当前登录用户的昵称     *     * @return 当前登录用户的昵称     */    public String getUserNickname() {        return basicInfoPanel.getNickname();    }    /**     * 更新     */    public void update() {        if (getUserID().length() > 0) {            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 result = root.getChild("Result").getText();                if (result.equals(StringShop.UPDATE_SUCCESS) == true) {                    JOptionPane.showMessageDialog(Smart.getInstance(),                        "更新成功!", StringShop.HINT_TITLE,                        JOptionPane.INFORMATION_MESSAGE);                    ResetInfoAction.getInstance().setEnabled(false);                    UpdateInfoAction.getInstance().setEnabled(false);                } 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() {        if (getUserID().length() > 0) {            UserInfo userInfo = UserInfo.getRemoteUserInfo(getUserID());            ViewPanel.getInstance().setValue(userInfo);            ResetInfoAction.getInstance().setEnabled(false);        }    }    /**     * 设置显示用户的信息     *     * @param info 待设置的用户信息     */    public void setValue(UserInfo info) {        if (info != null) {            basicInfoPanel.setValue(info.getBasicInfo());            optionalInfoPanel.setValue(info.getOptionalInfo());        } else {            basicInfoPanel.setValue(null);            optionalInfoPanel.setValue(null);        }        ResetInfoAction.getInstance().setEnabled(false);        UpdateInfoAction.getInstance().setEnabled(false);    }    /*------------------------------------------------------------------------*     *                                私有方法                                *     *------------------------------------------------------------------------*/    /**     * 生成请求URL     *     * @return 生成的请求URL     */    private String genURL() {        StringBuffer url = new StringBuffer();        url.append("http://");        url.append(XMLConfig.getServicesIP());        url.append(":");        url.append(XMLConfig.getUpdatePort());        url.append("/");        return url.toString();    }    /**     * 生成XML-RPC请求消息     *     * @return 生成的XML-RPC请求消息     */    private XmlRpcRequest genRequest() {        //请求方法        StringBuffer method = new StringBuffer();        method.append(XMLConfig.getUpdateClass());        method.append(".");        method.append(XMLConfig.getUpdateMethod());        //请求参数        Vector params = new Vector();        XMLOutputter outputter = new XMLOutputter();        params.addElement(outputter.outputString(genDocument()));        return new XmlRpcRequest(method.toString(), params);    }    /**     * 生成XML文档     *     * @return 生成的XML文档     */    private Document genDocument() {        Element request = new Element("Request");        Element level1 = new Element("User");        request.addContent(level1);        Element level2 = new Element("Basic");        level1.addContent(level2);        Element level3 = new Element("ID");        level3.setText(basicInfoPanel.getID());        level2.addContent(level3);        level3 = new Element("Nickname");        level3.setText(basicInfoPanel.getNickname());        level2.addContent(level3);        level3 = new Element("Password");        level3.setText(basicInfoPanel.getPassword());        level2.addContent(level3);        level2 = new Element("Optional");        level1.addContent(level2);        level3 = new Element("Name");        level3.setText(optionalInfoPanel.getName());        level2.addContent(level3);        level3 = new Element("Gender");        level3.setText(optionalInfoPanel.getGender());        level2.addContent(level3);        level3 = new Element("Birthday");        level3.setText(optionalInfoPanel.getBirthday());        level2.addContent(level3);        level3 = new Element("Country");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -