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

📄 basicfilechooserui.java

📁 java jdk 1.4的源码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/* * @(#)BasicFileChooserUI.java	1.47 03/01/23 * * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package javax.swing.plaf.basic;import javax.swing.*;import javax.swing.filechooser.*;import javax.swing.event.*;import javax.swing.plaf.*;import java.awt.*;import java.awt.event.*;import java.awt.datatransfer.*;import java.beans.*;import java.io.File;import java.io.IOException;import java.util.*;import java.util.regex.*;/** * Basic L&F implementation of a FileChooser. * * @version %i% %g% * @author Jeff Dinkins */public class BasicFileChooserUI extends FileChooserUI {    /* FileView icons */    protected Icon directoryIcon = null;    protected Icon fileIcon = null;    protected Icon computerIcon = null;    protected Icon hardDriveIcon = null;    protected Icon floppyDriveIcon = null;    protected Icon newFolderIcon = null;    protected Icon upFolderIcon = null;    protected Icon homeFolderIcon = null;    protected Icon listViewIcon = null;    protected Icon detailsViewIcon = null;    protected int saveButtonMnemonic = 0;    protected int openButtonMnemonic = 0;    protected int cancelButtonMnemonic = 0;    protected int updateButtonMnemonic = 0;    protected int helpButtonMnemonic = 0;    /**     * The mnemonic keycode used for the approve button when a directory     * is selected and the current selection mode is not DIRECTORIES_ONLY.     *     * @since 1.4     */    protected int directoryOpenButtonMnemonic = 0;    protected String saveButtonText = null;    protected String openButtonText = null;    protected String cancelButtonText = null;    protected String updateButtonText = null;    protected String helpButtonText = null;    /**     * The label text displayed on the approve button when a directory     * is selected and the current selection mode is not DIRECTORIES_ONLY.     *     * @since 1.4     */    protected String directoryOpenButtonText = null;    private String openDialogTitleText = null;    private String saveDialogTitleText = null;    protected String saveButtonToolTipText = null;    protected String openButtonToolTipText = null;    protected String cancelButtonToolTipText = null;    protected String updateButtonToolTipText = null;    protected String helpButtonToolTipText = null;    /**     * The tooltip text displayed on the approve button when a directory     * is selected and the current selection mode is not DIRECTORIES_ONLY.     *     * @since 1.4     */    protected String directoryOpenButtonToolTipText = null;    // Some generic FileChooser functions    private Action approveSelectionAction = new ApproveSelectionAction();    private Action cancelSelectionAction = new CancelSelectionAction();    private Action updateAction = new UpdateAction();    private Action newFolderAction = new NewFolderAction();    private Action goHomeAction = new GoHomeAction();    private Action changeToParentDirectoryAction = new ChangeToParentDirectoryAction();    private String newFolderErrorSeparator = null;    private String newFolderErrorText = null;    private String fileDescriptionText = null;    private String directoryDescriptionText = null;    private JFileChooser filechooser = null;    private boolean directorySelected = false;    private File directory = null;    private PropertyChangeListener propertyChangeListener = null;    private AcceptAllFileFilter acceptAllFileFilter = new AcceptAllFileFilter();    private FileFilter actualFileFilter = null;    private GlobFilter globFilter = null;    private BasicDirectoryModel model = null;    private BasicFileView fileView = new BasicFileView();    // The accessoryPanel is a container to place the JFileChooser accessory component    private JPanel accessoryPanel = null;    public BasicFileChooserUI(JFileChooser b) {    }    public void installUI(JComponent c) {	accessoryPanel = new JPanel(new BorderLayout());	filechooser = (JFileChooser) c;	createModel();	clearIconCache();	installDefaults(filechooser);	installComponents(filechooser);	installListeners(filechooser);	filechooser.applyComponentOrientation(filechooser.getComponentOrientation());    }    public void uninstallUI(JComponent c) {	uninstallListeners((JFileChooser) filechooser);	uninstallComponents((JFileChooser) filechooser);	uninstallDefaults((JFileChooser) filechooser);	if(accessoryPanel != null) {	    accessoryPanel.removeAll();	}	accessoryPanel = null;	getFileChooser().removeAll();    }    public void installComponents(JFileChooser fc) {    }    public void uninstallComponents(JFileChooser fc) {    }    protected void installListeners(JFileChooser fc) {	propertyChangeListener = createPropertyChangeListener(fc);	if(propertyChangeListener != null) {	    fc.addPropertyChangeListener(propertyChangeListener);	}	fc.addPropertyChangeListener(getModel());	InputMap inputMap = getInputMap(JComponent.					WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);	SwingUtilities.replaceUIInputMap(fc, JComponent.					 WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, inputMap);	ActionMap actionMap = getActionMap();	SwingUtilities.replaceUIActionMap(fc, actionMap);    }    InputMap getInputMap(int condition) {	if (condition == JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT) {	    return (InputMap)UIManager.get("FileChooser.ancestorInputMap");	}	return null;    }    ActionMap getActionMap() {	return createActionMap();    }    ActionMap createActionMap() {	AbstractAction escAction = new AbstractAction() {            public void actionPerformed(ActionEvent e) {		getFileChooser().cancelSelection();            }            public boolean isEnabled(){                return getFileChooser().isEnabled();            }        };	ActionMap map = new ActionMapUIResource();        map.put("approveSelection", getApproveSelectionAction());	map.put("cancelSelection", escAction);        map.put("Go Up", getChangeToParentDirectoryAction());	return map;    }    protected void uninstallListeners(JFileChooser fc) {	if(propertyChangeListener != null) {	    fc.removePropertyChangeListener(propertyChangeListener);	}	fc.removePropertyChangeListener(getModel());	SwingUtilities.replaceUIInputMap(fc, JComponent.					 WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, null);	SwingUtilities.replaceUIActionMap(fc, null);    }    protected void installDefaults(JFileChooser fc) {	installIcons(fc);	installStrings(fc);	TransferHandler th = fc.getTransferHandler();	if (th == null || th instanceof UIResource) {	    fc.setTransferHandler(defaultTransferHandler);	}    }    protected void installIcons(JFileChooser fc) {	directoryIcon    = UIManager.getIcon("FileView.directoryIcon");	fileIcon         = UIManager.getIcon("FileView.fileIcon");	computerIcon     = UIManager.getIcon("FileView.computerIcon");	hardDriveIcon    = UIManager.getIcon("FileView.hardDriveIcon");	floppyDriveIcon  = UIManager.getIcon("FileView.floppyDriveIcon");	newFolderIcon    = UIManager.getIcon("FileChooser.newFolderIcon");	upFolderIcon     = UIManager.getIcon("FileChooser.upFolderIcon");	homeFolderIcon   = UIManager.getIcon("FileChooser.homeFolderIcon");	detailsViewIcon  = UIManager.getIcon("FileChooser.detailsViewIcon");	listViewIcon     = UIManager.getIcon("FileChooser.listViewIcon");    }    protected void installStrings(JFileChooser fc) {        Locale l = fc.getLocale();	newFolderErrorText = UIManager.getString("FileChooser.newFolderErrorText",l);	newFolderErrorSeparator = UIManager.getString("FileChooser.newFolderErrorSeparator",l);	fileDescriptionText = UIManager.getString("FileChooser.fileDescriptionText",l);	directoryDescriptionText = UIManager.getString("FileChooser.directoryDescriptionText",l);	saveButtonText   = UIManager.getString("FileChooser.saveButtonText",l);	openButtonText   = UIManager.getString("FileChooser.openButtonText",l);	saveDialogTitleText = UIManager.getString("FileChooser.saveDialogTitleText",l);	openDialogTitleText = UIManager.getString("FileChooser.openDialogTitleText",l);	cancelButtonText = UIManager.getString("FileChooser.cancelButtonText",l);	updateButtonText = UIManager.getString("FileChooser.updateButtonText",l);	helpButtonText   = UIManager.getString("FileChooser.helpButtonText",l);	directoryOpenButtonText = UIManager.getString("FileChooser.directoryOpenButtonText",l);	saveButtonMnemonic   = UIManager.getInt("FileChooser.saveButtonMnemonic");	openButtonMnemonic   = UIManager.getInt("FileChooser.openButtonMnemonic");	cancelButtonMnemonic = UIManager.getInt("FileChooser.cancelButtonMnemonic");	updateButtonMnemonic = UIManager.getInt("FileChooser.updateButtonMnemonic");	helpButtonMnemonic   = UIManager.getInt("FileChooser.helpButtonMnemonic");	directoryOpenButtonMnemonic = UIManager.getInt("FileChooser.directoryOpenButtonMnemonic");	saveButtonToolTipText   = UIManager.getString("FileChooser.saveButtonToolTipText",l);	openButtonToolTipText   = UIManager.getString("FileChooser.openButtonToolTipText",l);	cancelButtonToolTipText = UIManager.getString("FileChooser.cancelButtonToolTipText",l);	updateButtonToolTipText = UIManager.getString("FileChooser.updateButtonToolTipText",l);	helpButtonToolTipText   = UIManager.getString("FileChooser.helpButtonToolTipText",l);	directoryOpenButtonToolTipText = UIManager.getString("FileChooser.directoryOpenButtonToolTipText",l);    }    protected void uninstallDefaults(JFileChooser fc) {	uninstallIcons(fc);	uninstallStrings(fc);	if (fc.getTransferHandler() instanceof UIResource) {	    fc.setTransferHandler(null);	}    }    protected void uninstallIcons(JFileChooser fc) {	directoryIcon    = null;	fileIcon         = null;	computerIcon     = null;	hardDriveIcon    = null;	floppyDriveIcon  = null;	newFolderIcon    = null;	upFolderIcon     = null;	homeFolderIcon   = null;	detailsViewIcon  = null;	listViewIcon     = null;    }    protected void uninstallStrings(JFileChooser fc) {	saveButtonText   = null;	openButtonText   = null;	cancelButtonText = null;	updateButtonText = null;	helpButtonText   = null;	directoryOpenButtonText = null;	saveButtonToolTipText = null;	openButtonToolTipText = null;	cancelButtonToolTipText = null;	updateButtonToolTipText = null;	helpButtonToolTipText = null;	directoryOpenButtonToolTipText = null;    }    protected void createModel() {	model = new BasicDirectoryModel(getFileChooser());    }    public BasicDirectoryModel getModel() {	return model;    }    public PropertyChangeListener createPropertyChangeListener(JFileChooser fc) {	return null;    }    public String getFileName() {	return null;    }    public String getDirectoryName() {	return null;    }    public void setFileName(String filename) {    }    public void setDirectoryName(String dirname) {    }    public void rescanCurrentDirectory(JFileChooser fc) {    }    public void ensureFileIsVisible(JFileChooser fc, File f) {    }    public JFileChooser getFileChooser() {	return filechooser;    }    public JPanel getAccessoryPanel() {	return accessoryPanel;    }    protected JButton getApproveButton(JFileChooser fc) {	return null;    }    public String getApproveButtonToolTipText(JFileChooser fc) {	String tooltipText = fc.getApproveButtonToolTipText();	if(tooltipText != null) {	    return tooltipText;	}	if(fc.getDialogType() == JFileChooser.OPEN_DIALOG) {	    return openButtonToolTipText;	} else if(fc.getDialogType() == JFileChooser.SAVE_DIALOG) {	    return saveButtonToolTipText;	}	return null;    }    public void clearIconCache() {	fileView.clearIconCache();    }    // ********************************************    // ************ Create Listeners **************    // ********************************************    public ListSelectionListener createListSelectionListener(JFileChooser fc) {	return new SelectionListener();    }    protected class DoubleClickListener extends MouseAdapter {	JList list;	public  DoubleClickListener(JList list) {	    this.list = list;	}	/**	 * The JList used for representing the files is created by subclasses, but the	 * selection is monitored in this class.  The TransferHandler installed in the	 * JFileChooser is also installed in the file list as it is used as the actual	 * transfer source.  The list is updated on a mouse enter to reflect the current	 * data transfer state of the file chooser.	 */        public void mouseEntered(MouseEvent e) {	    TransferHandler th1 = filechooser.getTransferHandler();	    TransferHandler th2 = list.getTransferHandler();	    if (th1 != th2) {		list.setTransferHandler(th1);	    }	    if (filechooser.getDragEnabled() != list.getDragEnabled()) {		list.setDragEnabled(filechooser.getDragEnabled());	    }	}

⌨️ 快捷键说明

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