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

📄 userviewpanel.java

📁 该系统是一个基于p2p的即时聊天系统
💻 JAVA
字号:
/* * @(#) UserViewPanel.java * Copyright 2004 HWStudio. All rights reserved. */package hws.item.smart.panel.function.admin.misc;//导入核心Java类库import java.awt.Insets;import java.awt.Component;import java.awt.GridBagLayout;import java.awt.GridBagConstraints;import java.awt.event.MouseListener;import java.util.List;import javax.swing.JTree;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.tree.TreePath;import javax.swing.tree.DefaultTreeModel;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.tree.DefaultTreeCellRenderer;import javax.swing.tree.DefaultTreeSelectionModel;import javax.swing.event.TreeSelectionListener;//导入自定义Java类库import hws.item.smart.misc.ImageShop;import hws.item.smart.utility.chat.UserInfo;import hws.item.smart.utility.admin.XMLAccessor;/** * 用户服务面板 * * @version 0.1 2005-08-30 * @author Hwerz */public class UserViewPanel extends JPanel {    /*------------------------------------------------------------------------*     *                                属性定义                                *     *------------------------------------------------------------------------*/    /**     * 用户树的根节点     */    private DefaultMutableTreeNode root;    /**     * 用户树的视图     */    private JTree userTree;    /**     * 用户树的模型     */    private DefaultTreeModel userModel;    /*------------------------------------------------------------------------*     *                                构造函数                                *     *------------------------------------------------------------------------*/    /**     * Create a new instance of this class     */    public UserViewPanel() {        super(new GridBagLayout());        //用户视图标签        GridBagConstraints constraints = new GridBagConstraints(            //gridx, gridy            0, 0,            //gridwidth, gridheight            1, 1,            //weightx, weighty            0.0, 0.0,            //anchor            GridBagConstraints.NORTHWEST,            //fill            GridBagConstraints.NONE,            //insets            new Insets(0, 5, 0, 0),            //ipadx, ipady            0, 0);        add(new JLabel("用户视图"), constraints);        //树型组件        root = new DefaultMutableTreeNode("系统用户");        userModel = new DefaultTreeModel(root);        userTree = new JTree(userModel);        loadUsers();        setTree();        setTreeCellRenderer();        JScrollPane scroller = new JScrollPane(userTree,            JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,            JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);        constraints.gridy = 1;        constraints.weightx = 1.0;        constraints.weighty = 1.0;        constraints.fill = GridBagConstraints.BOTH;        constraints.insets = new Insets(0, 0, 0, 0);        add(scroller, constraints);    }    /*------------------------------------------------------------------------*     *                                公共方法                                *     *------------------------------------------------------------------------*/    /**     * 重载用户     */    public void reloadUsers() {        unloadUsers();        loadUsers();    }    /**     * 返回用户树的根节点     *     * @return 用户树的根节点     */    public DefaultMutableTreeNode getRootNode() {        return root;    }    /**     * 删除选中的用户     */    public void deleteSelectedUser() {        TreePath path = userTree.getSelectionPath();        if (path != null) {            DefaultMutableTreeNode node = (DefaultMutableTreeNode) path                .getLastPathComponent();            if (node.isLeaf()) {                int row = userTree.getRowForPath(path);                userModel.removeNodeFromParent(node);                userTree.setSelectionRow(row - 1);                XMLAccessor.deleteUser(node.toString(), true);            }        }    }    /*------------------------------------------------------------------------*     *                                保护方法                                *     *------------------------------------------------------------------------*/    /**     * 添加TreeSelectionListener     *     * @param listener 待添加的TreeSelectionListener     */    protected void addTreeSelectionListener(TreeSelectionListener listener) {        userTree.addTreeSelectionListener(listener);    }    /**     * 添加MouseListener     *     * @param listener 待添加的MouseListener     */    protected void addMouseListener2(MouseListener listener) {        userTree.addMouseListener(listener);    }    /*------------------------------------------------------------------------*     *                                私有方法                                *     *------------------------------------------------------------------------*/    /**     * 装载用户     */    private void loadUsers() {        List users = XMLAccessor.getAllUsers();        for (int i = 0; i < users.size(); i++) {            UserInfo info = (UserInfo) users.get(i);            DefaultMutableTreeNode child = new DefaultMutableTreeNode(info);            userModel.insertNodeInto(child, root, i);        }        userTree.expandRow(0);        userTree.setSelectionRow(0);    }    /**     * 卸载用户     */    private void unloadUsers() {        int count = root.getChildCount();        for (int i = 0; i < count; i++) {            userModel.removeNodeFromParent(                (DefaultMutableTreeNode) root.getChildAt(0));        }    }    /**     * 设置树型组件的附加选项     */    private void setTree() {        DefaultTreeSelectionModel model = new DefaultTreeSelectionModel();        model.setSelectionMode(model.SINGLE_TREE_SELECTION);        userTree.setSelectionModel(model);        userTree.setSelectionRow(0);        userTree.expandRow(0);    }    /**     * 设置树型组件的单元格渲染器     */    private void setTreeCellRenderer() {        final DefaultTreeCellRenderer renderer1 =            (DefaultTreeCellRenderer) userTree.getCellRenderer();        DefaultTreeCellRenderer renderer2 = new DefaultTreeCellRenderer() {            public Component getTreeCellRendererComponent(JTree tree,                Object value, boolean selected, boolean expanded,                boolean leaf, int row, boolean hasFocus) {                Component c = renderer1.getTreeCellRendererComponent(tree,                    value, selected, expanded, leaf, row, hasFocus);                JLabel label = (JLabel) c;                if (value == root) {                    label.setIcon(ImageShop.USER_ROOT_IMAGEICON);                } else {                    label.setIcon(ImageShop.USER_IMAGEICON);                }                return c;            }        };        userTree.setCellRenderer(renderer2);    }}

⌨️ 快捷键说明

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