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

📄 centeredfilechooser.java

📁 MyUploader 是一款使用 http 协议(RFC 1867)用于上传文件和文件夹到一个网络服务器的简单易用的收费 Java 程序.使用托拽操作,你可以在短时间之内上传数以百计的文件.在上传文件
💻 JAVA
字号:
/* * Copyright 2005-2007 JavaAtWork All rights reserved. * Use is subject to license terms. */package javaatwork.myuploader.dialog;import java.applet.Applet;import java.awt.Component;import java.awt.Container;import java.awt.Dimension;import java.awt.HeadlessException;import java.awt.Toolkit;import java.awt.event.MouseListener;import java.io.File;import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import java.net.URLEncoder;import javaatwork.myuploader.utils.CookieManager;import javaatwork.myuploader.utils.LocaleManager;import javaatwork.myuploader.utils.Logger;import javaatwork.myuploader.utils.Parameters;import javax.swing.JDialog;import javax.swing.JFileChooser;import javax.swing.JList;import javax.swing.SwingUtilities;import javax.swing.UIManager;/** * A JFileChooser that is in the center of the screen.  *  * @author Johannes Postma */ public class CenteredFileChooser extends JFileChooser {	/**	 * serialVersionUID	 */	private static final long serialVersionUID = -5006688261460210335L;	/**	 * Creates a new CenteredFileChooser	 */	public CenteredFileChooser() {		super();				UIManager.put("FileChooser.readOnly", Boolean.TRUE);		this.setMultiSelectionEnabled(true);				if (Parameters.getParameter(Parameters.UPLOAD_DIRECTORIES, true)) {			this.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);			} else {			this.setFileSelectionMode(JFileChooser.FILES_ONLY);		}				if (Parameters.getParameter(Parameters.SHOW_THUMBNAILS_IN_FILEDIALOG, false)) {			this.setAccessory(new ImagePreview(this));		}				// remove the file rename functionality in the JFileChooser		// this is done for JDK 1.4 and less		// the preferred way is UIManager.put("FileChooser.readOnly", Boolean.TRUE) (JDK 1.5) see above;		JList list = searchJList(this);		if (list != null) {			String listenerClassName;			MouseListener[] listeners = list.getMouseListeners();			for (int i = 0; i < listeners.length; i++) {				listenerClassName = listeners[i].getClass().getName();				if (listenerClassName.indexOf("SingleClick") != -1) {					list.removeMouseListener(listeners[i]);					break;				}			}		}				final String dialogTitle = LocaleManager.getInstance().getDialogTitle();		// the dialogtitle must come from a resourcebundle		// the title is not given in the english resourcebundle		// and therefore the return dialogtitle is null		// the default dialogtitle will be used.		if (dialogTitle != null) {			try {				SwingUtilities.invokeLater(new Runnable() {					public void run() {						setDialogTitle(dialogTitle);					}				});			} catch (Exception e) {				Logger.log("CenteredFileChooser", "CenteredFileChooser()", e.toString());			}		}				if (Parameters.getParameter(Parameters.DISABLE_DEFAULT_FILEFILTER, false)) {			this.removeChoosableFileFilter(this.getFileFilter());		}		// determine fileFilter		String fileFilter = Parameters.getParameter(Parameters.FILEFILTER, null);				if (fileFilter != null) {			try {				this.setFileFilter(new UploadFileFilter(fileFilter));			} catch (FileFilterException ffe) {				Logger.log("CenteredFileChooser", "CenteredFileChooser()", ffe.toString());			}		}	}	/**	 * Creates a JDialog.	 * 	 * @param parent The parent component.	 * @throws HeadlessException If an error occurred.	 */	protected JDialog createDialog(Component parent) throws HeadlessException {		JDialog dialog = super.createDialog(parent);				//  sets the frame to the center		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();		Dimension frameSize = dialog.getSize();		if (frameSize.height > screenSize.height) {			frameSize.height = screenSize.height;		}		if (frameSize.width > screenSize.width) {			frameSize.width = screenSize.width;		}		dialog.setLocation(			(screenSize.width - frameSize.width) / 2,			(screenSize.height - frameSize.height) / 2);				return dialog;	}		/**	 * Returns the JList of a JFileChooser.	 * 	 * @param fileChooser The JFileChooser.	 * @return JList	 */	private JList searchJList(Container fileChooser) {				JList ret = null;				if (fileChooser instanceof JList) {			ret = (JList) fileChooser;		}			else {			Component[] children = fileChooser.getComponents();						for (int i = children.length - 1; i >= 0; i--) {				if (children[i] instanceof Container) {					ret = searchJList((Container) children[i]);					if (ret != null) {						break;					}				}			}		}		return ret;	}		/**	 * Returns the selected files.	 * 	 * @param applet The parent applet.	 * @return The selected files.	 */	public File[] getSelectedFiles(Applet applet) {				String currentDirectory = this.getCurrentDirectory().toString();		String encDir = null;				try {			encDir = URLEncoder.encode(currentDirectory, "UTF-8");		} catch (UnsupportedEncodingException e) {			encDir = URLEncoder.encode(currentDirectory);					}				CookieManager.setCookie(applet.getCodeBase(), "javaatwork_local_directory=" + encDir + ";expires=Sunday, 25-Dec-50 23:59:00 GMT");				return super.getSelectedFiles();			}		/**	 * Shows an open file dialog.	 * 	 * @param applet The parent applet.	 * @return See JFileChooser.	 */	public int showOpenDialog(Applet applet) {				String dir = CookieManager.getCookieValue(applet.getCodeBase(), "javaatwork_local_directory");				if (dir != null) {			try {				dir = URLDecoder.decode(dir, "UTF-8");			} catch (UnsupportedEncodingException e) {				dir = URLDecoder.decode(dir);			}						this.setCurrentDirectory(new File(dir));		}				return super.showOpenDialog(applet);	}}

⌨️ 快捷键说明

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