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

📄 filepanel.java

📁 该系统是一个基于p2p的即时聊天系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            loadFiles();            setTreeCellRenderer();            setTree(fileTree);            JScrollPane scroller = new JScrollPane(fileTree,                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);        }        /**         * 设置树型组件的单元格渲染器         */        private void setTreeCellRenderer() {            final DefaultTreeCellRenderer renderer1 =                (DefaultTreeCellRenderer) fileTree.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 == FILE_ROOT) {                        label.setIcon(ImageShop.SHARE_ROOT_IMAGEICON);                    } else {                        int level = ((DefaultMutableTreeNode) value).getLevel();                        if (level == 1) {                            label.setIcon(ImageShop.USER_IMAGEICON);                        } else {                            label.setIcon(ImageShop.SHARE_IMAGEICON);                        }                    }                    return c;                }            };            fileTree.setCellRenderer(renderer2);        }        /**         * 重载文件         */        public void reloadFiles() {            unloadFiles();            loadFiles();        }        /**         * 装载文件         */        private void loadFiles() {            List users = XMLAccessor.getAllUsers();            for (int i = 0; i < users.size(); i++) {                UserInfo user = (UserInfo) users.get(i);                DefaultMutableTreeNode child = new DefaultMutableTreeNode(user);                fileModel.insertNodeInto(child, FILE_ROOT, i);                List shares = user.getSharesInfo().getAllShares();                for (int j = 0; j < shares.size(); j++) {                    ShareInfo share = (ShareInfo) shares.get(j);                    DefaultMutableTreeNode child2 =                        new DefaultMutableTreeNode(share.getFile());                    fileModel.insertNodeInto(child2, child, j);                }            }            fileTree.expandRow(0);            fileTree.setSelectionRow(0);        }        /**         * 卸载文件         */        private void unloadFiles() {            int count = FILE_ROOT.getChildCount();            for (int i = 0; i < count; i++) {                fileModel.removeNodeFromParent(                    (DefaultMutableTreeNode) FILE_ROOT.getChildAt(0));            }        }        /**         * 实现TreeSelectionListener接口的方法         *         * @param event TreeSelectionEvent对象         */        public void valueChanged(TreeSelectionEvent event) {            DefaultMutableTreeNode node = (DefaultMutableTreeNode) event                .getPath().getLastPathComponent();            int level = node.getLevel();            if (level == 2) {                friendViewPanel.reloadFriends(                    node.getParent().toString(), node.toString());            } else {                friendViewPanel.reloadFriends(null, null);            }        }    }    /**     * 好友视图     */    class FriendViewPanel extends JPanel {        /**         * 好友树的视图         */        private JTree friendTree;        /**         * 好友树的模型         */        private DefaultTreeModel friendModel;        /**         * Create a new instance of this class         */        public FriendViewPanel() {            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);            //树型组件            friendModel = new DefaultTreeModel(FRIEND_ROOT);            friendTree = new JTree(friendModel);            setTreeCellRenderer();            setTree(friendTree);            JScrollPane scroller = new JScrollPane(friendTree,                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 指定的用户         * @param file 指定的共享文件         */        public void reloadFriends(String id, String file) {            unloadFriends();            if (id != null && file != null) {                loadFriends(id, file);            }        }        /**         * 装载好友         *         * @param id 指定的用户         * @param file 指定的共享文件         */        private void loadFriends(String id, String file) {            Element shares = XMLAccessor.getSharesElement(id);            List s = SharesInfo.sharesElement2SharesInfo(shares).getAllShares();            for (int i = 0; i < s.size(); i++) {                ShareInfo share = (ShareInfo) s.get(i);                if (share.getFile().equals(file)) {                    List f = share.getFriends().getAllFriends();                    for (int j = 0; j < f.size(); j++) {                        DefaultMutableTreeNode friend =                            new DefaultMutableTreeNode(f.get(j));                        friendModel.insertNodeInto(friend, FRIEND_ROOT, j);                    }                }            }            friendTree.expandRow(0);            friendTree.setSelectionRow(0);        }        /**         * 卸载好友         */        private void unloadFriends() {            int count = FRIEND_ROOT.getChildCount();            for (int i = 0; i < count; i++) {                friendModel.removeNodeFromParent(                    (DefaultMutableTreeNode) FRIEND_ROOT.getChildAt(0));            }        }        /**         * 设置树型组件的单元格渲染器         */        private void setTreeCellRenderer() {            final DefaultTreeCellRenderer renderer1 =                (DefaultTreeCellRenderer) friendTree.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 == FRIEND_ROOT) {                        label.setIcon(ImageShop.USER_ROOT_IMAGEICON);                    } else {                        label.setIcon(ImageShop.USER_IMAGEICON);                    }                    return c;                }            };            friendTree.setCellRenderer(renderer2);        }    }}

⌨️ 快捷键说明

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