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

📄 fileexplorer.java

📁 JDesktop Integration Components (JDIC)
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/* * Copyright (C) 2004 Sun Microsystems, Inc. All rights reserved. Use is * subject to license terms. *  * This program is free software; you can redistribute it and/or modify * it under the terms of the Lesser GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. *  * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * General Public License for more details. *  * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA. */ import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.Dimension;import java.awt.Color;import java.awt.Point;import java.awt.Container;import java.awt.Component;import java.awt.Toolkit;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import javax.swing.event.*;import javax.swing.tree.*;import javax.swing.table.TableColumn;import java.net.URL;import java.net.MalformedURLException;import java.util.ArrayList;import java.util.List;import java.util.Iterator;import java.io.IOException;import java.io.File;import org.jdesktop.jdic.desktop.*;/** * JDIC API demo main class. * <p> * The main class for the demo. Class <code>FileExplorer</code> creates a UI  * interface demonstrating the usage of the public API of <code>org.jdesktop.jdic.desktop.* * </code> classes. */public class FileExplorer extends JPanel {    public static ImageIcon computerIcon;    public static ImageIcon driverIcon;    public static ImageIcon folderIcon;    public static ImageIcon fileIcon;    public static ImageIcon browseIcon;    public static String MY_COMPUTER_FOLDER_PATH = System.getProperty("java.io.tmpdir")            + File.separator + "My Computer";    // Currently selected tree node in the left disk tree.    public static MyTreeNode selectedTreeNode = null;    // Currently selected file in the right table.    File selectedFile = null;    BorderLayout borderLayout1 = new BorderLayout();    JPopupMenu jDesktopPopupMenu = new JPopupMenu();    JMenuItem jMenuItemOpen = new JMenuItem();    JMenuItem jMenuItemEdit = new JMenuItem();    JMenuItem jMenuItemPrint = new JMenuItem();    JMenuItem jMenuItemBrowse = new JMenuItem();    JMenuItem jMenuItemMail = new JMenuItem();    JSplitPane jSplitPane = new JSplitPane();    JTree jTreeDisk = new JTree(createTreeModel());    JScrollPane tableScrollPane = new JScrollPane();    MyTableModel tableModel = new MyTableModel();    MyTable jTable = new MyTable();    JPanel jAddressPanel = new JPanel();    JLabel jAddressLabel = new JLabel();    JTextField jAddressTextField = new JTextField();    JButton jBrowseButton = new JButton();    MyStatusBar statusBar = new MyStatusBar();    public FileExplorer() {        try {            System.setSecurityManager(null);            jbInit();        } catch (Exception e) {            e.printStackTrace();        }    }    public static void main(String[] args) {        try {            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());        } catch (Exception e) {}        JFrame frame = new JFrame("JDIC API Demo - FileExplorer");        Container contentPane = frame.getContentPane();        contentPane.setLayout(new GridLayout(1, 1));        contentPane.add(new FileExplorer());        frame.addWindowListener(new WindowAdapter() {            public void windowClosing(WindowEvent e) {                System.exit(0);            }        });        frame.pack();        frame.setVisible(true);    }    private void jbInit() throws Exception {        try {            computerIcon = new ImageIcon(FileExplorer.class.getResource("images/Computer.gif"));            driverIcon = new ImageIcon(FileExplorer.class.getResource("images/Driver.gif"));            folderIcon = new ImageIcon(FileExplorer.class.getResource("images/Folder.gif"));            fileIcon = new ImageIcon(FileExplorer.class.getResource("images/File.gif"));            browseIcon = new ImageIcon(FileExplorer.class.getResource("images/Right.gif"));        } catch (Exception e) {            System.out.println("ERROR loading image files !");        }        this.setLayout(borderLayout1);        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();        this.setPreferredSize(new Dimension(screenSize.width * 4 / 5,                screenSize.height * 7 / 10));        jMenuItemOpen.setText("Open");        jMenuItemOpen.addActionListener(new                FileExplorer_jMenuItemOpen_actionAdapter(this));        jMenuItemEdit.setText("Edit");        jMenuItemEdit.addActionListener(new                FileExplorer_jMenuItemEdit_actionAdapter(this));        jMenuItemPrint.setText("Print");        jMenuItemPrint.addActionListener(new                FileExplorer_jMenuItemPrint_actionAdapter(this));        jMenuItemBrowse.setText("Browse");        jMenuItemBrowse.addActionListener(new                FileExplorer_jMenuItemBrowse_actionAdapter(this));        jMenuItemMail.setText("Mail to ...");        jMenuItemMail.addActionListener(new                FileExplorer_jMenuItemMail_actionAdapter(this));        jTreeDisk.addTreeExpansionListener(new                FileExplorer_jTreeDisk_treeExpansionAdapter(this));        jAddressLabel.setBorder(BorderFactory.createEmptyBorder(0, 4, 0, 4));        jAddressLabel.setToolTipText("");        jAddressLabel.setText("Address");        jBrowseButton.setBorder(BorderFactory.createCompoundBorder(new EmptyBorder(0,                2, 0, 2),                new EtchedBorder()));        jBrowseButton.setToolTipText("Browse the given URL with system default browser");        jBrowseButton.setIcon(browseIcon);        jBrowseButton.setText("Browse ");        jBrowseButton.addActionListener(new                FileExplorer_jBrowseButton_actionAdapter(this));        jAddressPanel.setLayout(new BorderLayout());        jAddressTextField.addActionListener(new                FileExplorer_jAddressTextField_actionAdapter(this));        jAddressPanel.add(jAddressLabel, BorderLayout.WEST);        jAddressPanel.add(jAddressTextField, BorderLayout.CENTER);        jAddressPanel.add(jBrowseButton, BorderLayout.EAST);        jAddressPanel.setBorder(BorderFactory.createEmptyBorder(2, 0, 2, 0));        jTreeDisk.addMouseListener(new FileExplorer_jTreeDisk_mouseAdapter(this));        jTreeDisk.addTreeWillExpandListener(new                FileExplorer_jTreeDisk_treeWillExpandAdapter(this));        jTreeDisk.setCellRenderer(new MyTreeRenderer());        jTreeDisk.getSelectionModel().setSelectionMode                (TreeSelectionModel.SINGLE_TREE_SELECTION);        jTreeDisk.setSelectionRow(0);        jTreeDisk.setBackground(Color.white);        jTreeDisk.setAlignmentX((float) 0.5);        jTreeDisk.setShowsRootHandles(false);        jTreeDisk.addTreeSelectionListener(new                FileExplorer_jTreeDisk_treeSelectionAdapter(this));        jTable.setBorder(null);        jTable.setModel(tableModel);        TableColumn column = jTable.getColumnModel().getColumn(0);        column.setCellRenderer(new MyTableRenderer());        column = jTable.getColumnModel().getColumn(1);        column.setCellRenderer(new MyTableRenderer());        jTable.setShowHorizontalLines(false);        jTable.setShowVerticalLines(false);        jTable.addMouseListener(new FileExplorer_jTable_mouseAdapter(this));        tableScrollPane.setViewportView(jTable);        jSplitPane.setBorder(null);        jSplitPane.add(new JScrollPane(jTreeDisk), JSplitPane.LEFT);        jSplitPane.add(tableScrollPane, JSplitPane.RIGHT);        statusBar.setBorder(BorderFactory.createEmptyBorder(2, 0, 0, 0));        statusBar.lblDesc.setText("JDIC API Demo - FileExplorer");        this.add(jAddressPanel, BorderLayout.NORTH);        this.add(jSplitPane, BorderLayout.CENTER);        this.add(statusBar, BorderLayout.SOUTH);    }        private DefaultTreeModel createTreeModel() {        // Using "My Computer" as root.        MyTreeNode rootNode = null;        String osName = System.getProperty("os.name").toLowerCase();        if (osName.startsWith("windows")) {            // Create a temp "My Computer" folder.            File MY_COMPUTER_FOLDER_FILE = new File(MY_COMPUTER_FOLDER_PATH);            MY_COMPUTER_FOLDER_FILE.mkdirs();            // Delete temp file when program exits.            MY_COMPUTER_FOLDER_FILE.deleteOnExit();            rootNode = new MyTreeNode(MY_COMPUTER_FOLDER_FILE);            MyTreeNode parent;            File[] roots = MyUtility.getRoots();            // Remove A: drive from the initial list of drives, since whenever the            // JTree is repaint, it tries to read floppy drive A:\.            // for (int i = 0; i < roots.length; i++) {            int readfirst = 0;            if (roots[readfirst].getPath().toLowerCase().startsWith("a:")) {                readfirst = 1;            }            for (int i = readfirst; i < roots.length; i++) {                parent = new MyTreeNode(roots[i]);                parent.explore();                rootNode.add(parent);            }            // By default, use the first non-floppy disk here.            selectedTreeNode = rootNode;            selectedFile = null;        } else if (osName.startsWith("linux") || osName.startsWith("sunos")             || osName.startsWith("freebsd") || osName.startsWith("mac os")) {            File rootFile = new File("/");            rootNode = new MyTreeNode(rootFile);            rootNode.explore();            selectedTreeNode = (MyTreeNode) rootNode;            selectedFile = selectedTreeNode.getFile();        } else {            throw new UnsupportedOperationException("The demo is not "                    + "supported on this platform.");        }        return new DefaultTreeModel(rootNode);    }    void jTreeDisk_valueChanged(TreeSelectionEvent e) {        selectedTreeNode = (MyTreeNode)                jTreeDisk.getLastSelectedPathComponent();        selectedFile = null;        // Refresh the address field.        if (selectedTreeNode != null) {            File selectedDir = (File) selectedTreeNode.getUserObject();            // Update the address text field and status bar.            updateStatusInfo();        }        // Refresh the file table.        tableModel.setColumnNames();        tableModel.setTableData();        jTable.repaint();               // Revalidate the JScrollPane component for the changed JTable.        // Display the scrollbar if necessary.        tableScrollPane.revalidate();             }    void jTreeDisk_treeExpanded(TreeExpansionEvent e) {        DefaultTreeModel treeModel = (DefaultTreeModel) jTreeDisk.getModel();        TreePath newPath = new TreePath(treeModel.getPathToRoot(selectedTreeNode));        jTreeDisk.setSelectionPath(newPath);        jTreeDisk.scrollPathToVisible(newPath);    }    void jTreeDisk_mouseClicked(MouseEvent e) {        // Enable both left click and right click selection. Left click selection is        // auto-enabled, and doesn't need to be enabled specifically.        TreePath curTreePath = jTreeDisk.getClosestPathForLocation(e.getX(),                e.getY());        jTreeDisk.clearSelection();        jTreeDisk.addSelectionPath(curTreePath);    }    void jTreeDisk_treeWillExpand(TreeExpansionEvent e) throws            ExpandVetoException {        TreePath path = e.getPath();        MyTreeNode selectedNode = (MyTreeNode) path.getLastPathComponent();        if (!selectedNode.isExplored()) {            selectedNode.explore();        }    }    /**     * Explores the directory specified by the parent tree node in the left tree     * and the selected subdirectory in the right table.     */    private void exploreDirectory(MyTreeNode parentTreeNode,            File selectedSubDir) {        if (!parentTreeNode.isExplored()) {

⌨️ 快捷键说明

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