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

📄 metalfilechooserui.java

📁 Mobile 应用程序使用 Java Micro Edition (Java ME) 平台
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
	// Decide whether to use the ShellFolder class to populate shortcut	// panel and combobox.	JFileChooser fc = getFileChooser();	Boolean prop =	    (Boolean)fc.getClientProperty("FileChooser.useShellFolder");	if (prop != null) {	    useShellFolder = prop.booleanValue();	} else {	    // See if FileSystemView.getRoots() returns the desktop folder,	    // i.e. the normal Windows hierarchy.	    useShellFolder = false;	    File[] roots = fc.getFileSystemView().getRoots();	    if (roots != null && roots.length == 1) {		File[] cbFolders = (File[])ShellFolder.get("fileChooserComboBoxFolders");		if (cbFolders != null && cbFolders.length > 0 && roots[0] == cbFolders[0]) {		    useShellFolder = true;		}	    }	}    }    protected JPanel getButtonPanel() {	if (buttonPanel == null) {	    buttonPanel = new JPanel();	}	return buttonPanel;    }    protected JPanel getBottomPanel() {	if(bottomPanel == null) {	    bottomPanel = new JPanel();	}	return bottomPanel;    }    protected void installStrings(JFileChooser fc) {	super.installStrings(fc);        Locale l = fc.getLocale();	lookInLabelMnemonic = UIManager.getInt("FileChooser.lookInLabelMnemonic"); 	lookInLabelText = UIManager.getString("FileChooser.lookInLabelText",l);	saveInLabelText = UIManager.getString("FileChooser.saveInLabelText",l);		fileNameLabelMnemonic = UIManager.getInt("FileChooser.fileNameLabelMnemonic");  	fileNameLabelText = UIManager.getString("FileChooser.fileNameLabelText",l); 		filesOfTypeLabelMnemonic = UIManager.getInt("FileChooser.filesOfTypeLabelMnemonic");  	filesOfTypeLabelText = UIManager.getString("FileChooser.filesOfTypeLabelText",l); 		upFolderToolTipText =  UIManager.getString("FileChooser.upFolderToolTipText",l);	upFolderAccessibleName = UIManager.getString("FileChooser.upFolderAccessibleName",l); 		homeFolderToolTipText =  UIManager.getString("FileChooser.homeFolderToolTipText",l);	homeFolderAccessibleName = UIManager.getString("FileChooser.homeFolderAccessibleName",l); 		newFolderToolTipText = UIManager.getString("FileChooser.newFolderToolTipText",l);	newFolderAccessibleName = UIManager.getString("FileChooser.newFolderAccessibleName",l); 		listViewButtonToolTipText = UIManager.getString("FileChooser.listViewButtonToolTipText",l); 	listViewButtonAccessibleName = UIManager.getString("FileChooser.listViewButtonAccessibleName",l); 		detailsViewButtonToolTipText = UIManager.getString("FileChooser.detailsViewButtonToolTipText",l); 	detailsViewButtonAccessibleName = UIManager.getString("FileChooser.detailsViewButtonAccessibleName",l);     }    protected void installListeners(JFileChooser fc) {	super.installListeners(fc);        ActionMap actionMap = getActionMap();        SwingUtilities.replaceUIActionMap(fc, actionMap);    }    protected ActionMap getActionMap() {        return createActionMap();    }    protected ActionMap createActionMap() {        ActionMap map = new ActionMapUIResource();	FilePane.addActionsToMap(map, filePane.getActions());        return map;    }    protected JPanel createList(JFileChooser fc) {	return filePane.createList();    }    protected JPanel createDetailsView(JFileChooser fc) {	return filePane.createDetailsView();    }    /**     * Creates a selection listener for the list of files and directories.     *     * @param fc a <code>JFileChooser</code>     * @return a <code>ListSelectionListener</code>     */    public ListSelectionListener createListSelectionListener(JFileChooser fc) {	return super.createListSelectionListener(fc);    }    // Obsolete class, not used in this version.    protected class SingleClickListener extends MouseAdapter {	public  SingleClickListener(JList list) {	}    }    // Obsolete class, not used in this version.    protected class FileRenderer extends DefaultListCellRenderer  {    }    public void uninstallUI(JComponent c) {	// Remove listeners	c.removePropertyChangeListener(filterComboBoxModel);	c.removePropertyChangeListener(filePane);	cancelButton.removeActionListener(getCancelSelectionAction());	approveButton.removeActionListener(getApproveSelectionAction());	fileNameTextField.removeActionListener(getApproveSelectionAction());	if (filePane != null) {	    filePane.uninstallUI();	    filePane = null;	}	super.uninstallUI(c);    }    /**     * Returns the preferred size of the specified     * <code>JFileChooser</code>.     * The preferred size is at least as large,     * in both height and width,     * as the preferred size recommended     * by the file chooser's layout manager.     *     * @param c  a <code>JFileChooser</code>     * @return   a <code>Dimension</code> specifying the preferred     *           width and height of the file chooser     */    public Dimension getPreferredSize(JComponent c) {	int prefWidth = PREF_SIZE.width;	Dimension d = c.getLayout().preferredLayoutSize(c);	if (d != null) {	    return new Dimension(d.width < prefWidth ? prefWidth : d.width,				 d.height < PREF_SIZE.height ? PREF_SIZE.height : d.height);	} else {	    return new Dimension(prefWidth, PREF_SIZE.height);	}    }    /**     * Returns the minimum size of the <code>JFileChooser</code>.     *     * @param c  a <code>JFileChooser</code>     * @return   a <code>Dimension</code> specifying the minimum     *           width and height of the file chooser     */    public Dimension getMinimumSize(JComponent c) {	return MIN_SIZE;    }    /**     * Returns the maximum size of the <code>JFileChooser</code>.     *     * @param c  a <code>JFileChooser</code>     * @return   a <code>Dimension</code> specifying the maximum      *           width and height of the file chooser     */    public Dimension getMaximumSize(JComponent c) {	return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE);    }    private String fileNameString(File file) {	if (file == null) {	    return null;	} else {	    JFileChooser fc = getFileChooser();	    if ((fc.isDirectorySelectionEnabled() && !fc.isFileSelectionEnabled()) ||	        (fc.isDirectorySelectionEnabled() && fc.isFileSelectionEnabled() && fc.getFileSystemView().isFileSystemRoot(file))) {		return file.getPath();	    } else {		return file.getName();	    }	}    }    private String fileNameString(File[] files) {	StringBuffer buf = new StringBuffer();	for (int i = 0; files != null && i < files.length; i++) {	    if (i > 0) {		buf.append(" ");	    }	    if (files.length > 1) {		buf.append("\"");	    }	    buf.append(fileNameString(files[i]));	    if (files.length > 1) {		buf.append("\"");	    }	}	return buf.toString();    }    /* The following methods are used by the PropertyChange Listener */    private void doSelectedFileChanged(PropertyChangeEvent e) {	File f = (File) e.getNewValue();	JFileChooser fc = getFileChooser();	if (f != null 	    && ((fc.isFileSelectionEnabled() && !f.isDirectory())		|| (f.isDirectory() && fc.isDirectorySelectionEnabled()))) {	    setFileName(fileNameString(f));	}    }        private void doSelectedFilesChanged(PropertyChangeEvent e) {	File[] files = (File[]) e.getNewValue();	JFileChooser fc = getFileChooser();	if (files != null	    && files.length > 0	    && (files.length > 1 || fc.isDirectorySelectionEnabled() || !files[0].isDirectory())) {	    setFileName(fileNameString(files));	}    }        private void doDirectoryChanged(PropertyChangeEvent e) {	JFileChooser fc = getFileChooser();	FileSystemView fsv = fc.getFileSystemView();	clearIconCache();	File currentDirectory = fc.getCurrentDirectory();	if(currentDirectory != null) {	    directoryComboBoxModel.addItem(currentDirectory);	    if (fc.isDirectorySelectionEnabled() && !fc.isFileSelectionEnabled()) {		if (fsv.isFileSystem(currentDirectory)) {		    setFileName(currentDirectory.getPath());		} else {		    setFileName(null);		}	    }	}    }    private void doFilterChanged(PropertyChangeEvent e) {	clearIconCache();    }    private void doFileSelectionModeChanged(PropertyChangeEvent e) {	clearIconCache();	JFileChooser fc = getFileChooser();	File currentDirectory = fc.getCurrentDirectory();	if (currentDirectory != null	    && fc.isDirectorySelectionEnabled()	    && !fc.isFileSelectionEnabled()	    && fc.getFileSystemView().isFileSystem(currentDirectory)) {	    setFileName(currentDirectory.getPath());	} else {	    setFileName(null);	}    }    private void doAccessoryChanged(PropertyChangeEvent e) {	if(getAccessoryPanel() != null) {	    if(e.getOldValue() != null) {		getAccessoryPanel().remove((JComponent) e.getOldValue());	    }	    JComponent accessory = (JComponent) e.getNewValue();	    if(accessory != null) {		getAccessoryPanel().add(accessory, BorderLayout.CENTER);	    }	}    }    private void doApproveButtonTextChanged(PropertyChangeEvent e) {	JFileChooser chooser = getFileChooser();	approveButton.setText(getApproveButtonText(chooser));	approveButton.setToolTipText(getApproveButtonToolTipText(chooser));    }    private void doDialogTypeChanged(PropertyChangeEvent e) {	JFileChooser chooser = getFileChooser();	approveButton.setText(getApproveButtonText(chooser));	approveButton.setToolTipText(getApproveButtonToolTipText(chooser));	if (chooser.getDialogType() == JFileChooser.SAVE_DIALOG) {	    lookInLabel.setText(saveInLabelText);	} else {	    lookInLabel.setText(lookInLabelText);	}    }    private void doApproveButtonMnemonicChanged(PropertyChangeEvent e) {	// Note: Metal does not use mnemonics for approve and cancel    }    private void doControlButtonsChanged(PropertyChangeEvent e) {	if(getFileChooser().getControlButtonsAreShown()) {	    addControlButtons();	} else {	    removeControlButtons();	}    }    /*     * Listen for filechooser property changes, such as     * the selected file changing, or the type of the dialog changing.     */    public PropertyChangeListener createPropertyChangeListener(JFileChooser fc) {	return new PropertyChangeListener() {	    public void propertyChange(PropertyChangeEvent e) {		String s = e.getPropertyName();		if(s.equals(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY)) {		    doSelectedFileChanged(e);		} else if (s.equals(JFileChooser.SELECTED_FILES_CHANGED_PROPERTY)) {		    doSelectedFilesChanged(e);		} else if(s.equals(JFileChooser.DIRECTORY_CHANGED_PROPERTY)) {		    doDirectoryChanged(e);		} else if(s.equals(JFileChooser.FILE_FILTER_CHANGED_PROPERTY)) {		    doFilterChanged(e);		} else if(s.equals(JFileChooser.FILE_SELECTION_MODE_CHANGED_PROPERTY)) {		    doFileSelectionModeChanged(e);		} else if(s.equals(JFileChooser.ACCESSORY_CHANGED_PROPERTY)) {		    doAccessoryChanged(e);		} else if (s.equals(JFileChooser.APPROVE_BUTTON_TEXT_CHANGED_PROPERTY) ||			   s.equals(JFileChooser.APPROVE_BUTTON_TOOL_TIP_TEXT_CHANGED_PROPERTY)) { 		    doApproveButtonTextChanged(e);		} else if(s.equals(JFileChooser.DIALOG_TYPE_CHANGED_PROPERTY)) {		    doDialogTypeChanged(e);		} else if(s.equals(JFileChooser.APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY)) {		    doApproveButtonMnemonicChanged(e);		} else if(s.equals(JFileChooser.CONTROL_BUTTONS_ARE_SHOWN_CHANGED_PROPERTY)) {		    doControlButtonsChanged(e);		} else if (s.equals("componentOrientation")) {		    ComponentOrientation o = (ComponentOrientation)e.getNewValue();		    JFileChooser cc = (JFileChooser)e.getSource();		    if (o != (ComponentOrientation)e.getOldValue()) {			cc.applyComponentOrientation(o);		    }		} else if (s == "FileChooser.useShellFolder") {		    updateUseShellFolder();		    doDirectoryChanged(e);		} else if (s.equals("ancestor")) {		    if (e.getOldValue() == null && e.getNewValue() != null) {			// Ancestor was added, set initial focus			fileNameTextField.selectAll();			fileNameTextField.requestFocus();		    }		}	    }	};    }    protected void removeControlButtons() {	getBottomPanel().remove(getButtonPanel());    }    protected void addControlButtons() {	getBottomPanel().add(getButtonPanel());    }    public void ensureFileIsVisible(JFileChooser fc, File f) {	filePane.ensureFileIsVisible(fc, f);    }    public void rescanCurrentDirectory(JFileChooser fc) {	filePane.rescanCurrentDirectory();    }    public String getFileName() {	if (fileNameTextField != null) {	    return fileNameTextField.getText();	} else {	    return null;	}    }    public void setFileName(String filename) {	if (fileNameTextField != null) {	    fileNameTextField.setText(filename);	}    }    /**     * Property to remember whether a directory is currently selected in the UI.     * This is normally called by the UI on a selection event.     *     * @param directorySelected if a directory is currently selected.     * @since 1.4     */    protected void setDirectorySelected(boolean directorySelected) {	super.setDirectorySelected(directorySelected);	JFileChooser chooser = getFileChooser();	if(directorySelected) {            if (approveButton != null) {	        approveButton.setText(directoryOpenButtonText);	        approveButton.setToolTipText(directoryOpenButtonToolTipText);            }	} else {            if (approveButton != null) {                approveButton.setText(getApproveButtonText(chooser));                approveButton.setToolTipText(getApproveButtonToolTipText(chooser));            }	}    }    public String getDirectoryName() {	// PENDING(jeff) - get the name from the directory combobox	return null;    }    public void setDirectoryName(String dirname) {	// PENDING(jeff) - set the name in the directory combobox    }    protected DirectoryComboBoxRenderer createDirectoryComboBoxRenderer(JFileChooser fc) {	return new DirectoryComboBoxRenderer();    }    //

⌨️ 快捷键说明

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