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

📄 userpanel.java

📁 该系统是一个基于p2p的即时聊天系统
💻 JAVA
字号:
/* * @(#) UserPanel.java * Copyright 2004 HWStudio. All rights reserved. */package hws.item.smart.panel.function.admin;//导入核心Java类库import java.awt.Insets;import java.awt.FlowLayout;import java.awt.GridBagLayout;import java.awt.GridBagConstraints;import java.awt.event.MouseEvent;import java.awt.event.MouseAdapter;import javax.swing.JTree;import javax.swing.JPanel;import javax.swing.JButton;import javax.swing.JSplitPane;import javax.swing.SwingUtilities;import javax.swing.tree.TreePath;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.event.TreeSelectionEvent;import javax.swing.event.TreeSelectionListener;//导入自定义Java类库import hws.item.smart.misc.ImageShop;import hws.item.smart.misc.SBChanger;import hws.item.smart.menu.pop.UserPanelMenu;import hws.item.smart.panel.function.admin.misc.UserInfoPanel;import hws.item.smart.panel.function.admin.misc.UserViewPanel;import hws.item.smart.action.admin.user.StopUserAction;import hws.item.smart.action.admin.user.StartUserAction;import hws.item.smart.action.admin.user.RestartUserAction;import hws.item.smart.utility.chat.UserInfo;import hws.item.smart.utility.admin.UserService;/** * 用户服务面板 * * @version 0.1 2005-08-30 * @author Hwerz */public class UserPanel extends JPanel {    /*------------------------------------------------------------------------*     *                                属性定义                                *     *------------------------------------------------------------------------*/    /**     * 该类自身的一个静态引用     */    private static UserPanel panel;    /**     * 用户视图面板     */    private UserViewPanel1 userViewPanel;    /**     * 用户信息面板     */    private UserInfoPanel userInfoPanel;    /*------------------------------------------------------------------------*     *                                构造函数                                *     *------------------------------------------------------------------------*/    /**     * 构造函数为私有,这样在整个运行过程中该类就只能有一个实例     */    private UserPanel() {        super(new GridBagLayout());        //启动用户服务        UserService.getInstance().start();        //工具栏面板        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);        //分割条面板        userInfoPanel = new UserInfoPanel();        userViewPanel = new UserViewPanel1();        JSplitPane spliter = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, false,            userViewPanel, userInfoPanel);        spliter.setOneTouchExpandable(true);        spliter.setDividerLocation(200);        constraints.gridy = 1;        constraints.weighty = 1.0;        constraints.fill = GridBagConstraints.BOTH;        constraints.insets = new Insets(5, 5, 5, 5);        add(spliter, constraints);    }    /*------------------------------------------------------------------------*     *                                公共方法                                *     *------------------------------------------------------------------------*/    /**     * 对该类提供的一个全局访问点,用来实例化该对象     *     * @return 该类唯一的一个实例     */    public static UserPanel getInstance() {        if (panel == null) {            panel = new UserPanel();        }        return panel;    }    /**     * 刷新     */    public void refresh() {        userViewPanel.reloadUsers();    }    /**     * 删除     */    public void delete() {        userViewPanel.deleteSelectedUser();        FilePanel.getInstance().refresh();        FriendPanel.getInstance().refresh();        GettingPanel.getInstance().refresh();        SettingPanel.getInstance().refresh();    }    /*------------------------------------------------------------------------*     *                                 内部类                                 *     *------------------------------------------------------------------------*/    /**     * 工具栏面板     */    class Toolbar extends JPanel {        /**         * Create a new instance of this class         */        public Toolbar() {            super(new FlowLayout(FlowLayout.CENTER, 5, 0));            //启动服务            JButton button = new JButton(StartUserAction.getInstance());            button.setIcon(ImageShop.START_IMAGEICON);            button.addMouseListener(new SBChanger(                StartUserAction.getInstance().getHintInfo(), false));            add(button);            //停止服务            button = new JButton(StopUserAction.getInstance());            button.setIcon(ImageShop.STOP_IMAGEICON);            button.addMouseListener(new SBChanger(                StopUserAction.getInstance().getHintInfo(), false));            add(button);            //重启服务            button = new JButton(RestartUserAction.getInstance());            button.setIcon(ImageShop.RESTART_IMAGEICON);            button.addMouseListener(new SBChanger(                RestartUserAction.getInstance().getHintInfo(), false));            add(button);        }    }    /**     * 用户视图面板     */    class UserViewPanel1 extends UserViewPanel        implements TreeSelectionListener {        /**         * Create a new instance of this class         */        public UserViewPanel1() {            super();            addTreeSelectionListener(this);            addMouseListener2(new MouseEventHandler());        }        /**         * 实现TreeSelectionListener接口的方法         *         * @param event TreeSelectionEvent对象         */        public void valueChanged(TreeSelectionEvent event) {            DefaultMutableTreeNode node = (DefaultMutableTreeNode) event                .getPath().getLastPathComponent();            if (node == getRootNode()) {                userInfoPanel.setValue(null);            } else {                UserInfo info = (UserInfo) node.getUserObject();                userInfoPanel.setValue(info);            }        }    }    /**     * 鼠标事件处理器     */    class MouseEventHandler extends MouseAdapter {        /**         * 覆盖超类MouseAdapter的方法         *         * @param event MouseEvent对象         */        public void mouseClicked(MouseEvent event) {            int x = event.getX();            int y = event.getY();            JTree tree = (JTree) event.getSource();            TreePath path = tree.getPathForLocation(x, y);            if (path != null) {                tree.setSelectionPath(path);                DefaultMutableTreeNode node = (DefaultMutableTreeNode) path                    .getLastPathComponent();                if (SwingUtilities.isRightMouseButton(event) && node.isLeaf()) {                    UserPanelMenu.getInstance().show(tree, x, y);                }            }        }    }}

⌨️ 快捷键说明

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