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

📄 logoutpanel.java

📁 该系统是一个基于p2p的即时聊天系统
💻 JAVA
字号:
/* * @(#) LogoutPanel.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 javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTable;import javax.swing.JButton;import javax.swing.JSplitPane;import javax.swing.JScrollPane;import javax.swing.ListSelectionModel;import javax.swing.event.ListSelectionEvent;import javax.swing.event.ListSelectionListener;import javax.swing.table.DefaultTableModel;//导入自定义Java类库import hws.item.smart.misc.ImageShop;import hws.item.smart.misc.SBChanger;import hws.item.smart.panel.function.admin.misc.OptionalInfoPanel;import hws.item.smart.action.admin.logout.StopLogoutAction;import hws.item.smart.action.admin.logout.StartLogoutAction;import hws.item.smart.action.admin.logout.RestartLogoutAction;import hws.item.smart.utility.chat.OptionalInfo;import hws.item.smart.utility.admin.XMLAccessor;import hws.item.smart.utility.admin.LogoutService;/** * 注销服务面板 * * @version 0.1 2005-08-08 * @author Hwerz */public class LogoutPanel extends JPanel {    /*------------------------------------------------------------------------*     *                                属性定义                                *     *------------------------------------------------------------------------*/    /**     * 该类自身的一个静态引用     */    private static LogoutPanel panel;    /**     * 基本信息面板     */    private BasicInfoPanel basicInfoPanel;    /**     * 可选信息面板     */    private OptionalInfoPanel optionalInfoPanel;    /*------------------------------------------------------------------------*     *                                构造函数                                *     *------------------------------------------------------------------------*/    /**     * 构造函数为私有,这样在整个运行过程中该类就只能有一个实例     */    private LogoutPanel() {        super(new GridBagLayout());        //启动注销服务        LogoutService.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);        //分割条面板        optionalInfoPanel = new OptionalInfoPanel();        basicInfoPanel = new BasicInfoPanel();        JSplitPane spliter = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, false,            basicInfoPanel, optionalInfoPanel);        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 LogoutPanel getInstance() {        if (panel == null) {            panel = new LogoutPanel();        }        return panel;    }    /**     * 注销     *     * @param id ID     * @param nickname 昵称     * @param ip IP地址     * @param time 注销时间     */    public void logout(String id, String nickname, String ip, String time) {        basicInfoPanel.addRow(id, nickname, ip, time);    }    /*------------------------------------------------------------------------*     *                                 内部类                                 *     *------------------------------------------------------------------------*/    /**     * 工具栏面板     */    class Toolbar extends JPanel {        /**         * Create a new instance of this class         */        public Toolbar() {            super(new FlowLayout(FlowLayout.CENTER, 5, 0));            //启动服务            JButton button = new JButton(StartLogoutAction.getInstance());            button.setIcon(ImageShop.START_IMAGEICON);            button.addMouseListener(new SBChanger(                StartLogoutAction.getInstance().getHintInfo(), false));            add(button);            //停止服务            button = new JButton(StopLogoutAction.getInstance());            button.setIcon(ImageShop.STOP_IMAGEICON);            button.addMouseListener(new SBChanger(                StopLogoutAction.getInstance().getHintInfo(), false));            add(button);            //重启服务            button = new JButton(RestartLogoutAction.getInstance());            button.setIcon(ImageShop.RESTART_IMAGEICON);            button.addMouseListener(new SBChanger(                RestartLogoutAction.getInstance().getHintInfo(), false));            add(button);        }    }    /**     * 基本信息面板     */    class BasicInfoPanel extends JPanel implements ListSelectionListener {        /**         * 基本信息表格的视图         */        private JTable userTable;        /**         * 基本信息表格的模型         */        private DefaultTableModel userModel;        /**         * Create a new instance of this class         */        public BasicInfoPanel() {            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);            //基本信息表格            Object[] header = {"ID", "昵称", "IP", "注销时间"};            userModel = new DefaultTableModel();            userModel.setColumnIdentifiers(header);            userTable = new JTable(userModel) {                public boolean isCellEditable(int row, int column) {                    return false;                }            };            userTable.getSelectionModel().addListSelectionListener(this);            userTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);            JScrollPane scroller = new JScrollPane(userTable,                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);        }        /**         * 添加记录         *         * @param id ID         * @param nickname 昵称         * @param ip IP地址         * @param time 注销时间         */        public void addRow(String id, String nickname, String ip, String time) {            int count = userModel.getRowCount();            userModel.addRow(new Object[] {id, nickname, ip, time});            userTable.getSelectionModel().setSelectionInterval(count, count);        }        /**         * 实现接口ListSelectionListener的方法         *         * @param event the event that characterizes the change         */        public void valueChanged(ListSelectionEvent event) {            int row = userTable.getSelectedRow();            String id = userModel.getValueAt(row, 0).toString();            OptionalInfo info = XMLAccessor.getUser(id).getOptionalInfo();            optionalInfoPanel.setValue(info);        }    }}

⌨️ 快捷键说明

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