📄 userpanel.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 + -