亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? xpfilechooserui.java

?? Swing Windows XP 外觀和感覺 BeanSoft 修改版, 2003年 原始的作者: XP 外觀和感覺 by Stefan Krause - http://www.stefan
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
// Beta
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*	XP Look and Feel                                                       *
*                                                                              *
*  (C) Copyright 2002, by Stefan Krause                                        *
*                                                                              *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */


/*
 * 
 * This is an almost unchanged version of MetalFileChooserUI.
 * 
 * 
 * @(#)BasicFileChooserUI.java  1.45 02/04/11
 *
 * Copyright 2002 Sun Microsystems, Inc. All rights reserved.
 * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
 
package com.stefankrause.xplookandfeel;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.ComponentOrientation;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.LayoutManager;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.DateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.EventObject;
import java.util.Locale;
import java.util.Vector;

import javax.swing.AbstractAction;
import javax.swing.AbstractListModel;
import javax.swing.Action;
import javax.swing.ActionMap;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultCellEditor;
import javax.swing.DefaultListCellRenderer;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.JToggleButton;
import javax.swing.KeyStroke;
import javax.swing.ListModel;
import javax.swing.ListSelectionModel;
import javax.swing.LookAndFeel;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.TransferHandler;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import javax.swing.event.ListDataEvent;
import javax.swing.event.ListDataListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileSystemView;
import javax.swing.plaf.ActionMapUIResource;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicFileChooserUI;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
import javax.swing.text.Position;

import sun.awt.shell.ShellFolder;

public class XPFileChooserUI extends BasicFileChooserUI {

	// Much of the Metal UI for JFilechooser is just a copy of
	// the windows implementation, but using Metal themed buttons, lists,
	// icons, etc. We are planning a complete rewrite, and hence we've
	// made most things in this class private.
	private JPanel centerPanel;

	private JLabel lookInLabel;
	private JComboBox directoryComboBox;
	private DirectoryComboBoxModel directoryComboBoxModel;
	private Action directoryComboBoxAction = new DirectoryComboBoxAction();

	private FilterComboBoxModel filterComboBoxModel;

	private JTextField fileNameTextField;

	private JToggleButton listViewButton;
	private JToggleButton detailsViewButton;
	private JPanel listViewPanel;
	private JPanel detailsViewPanel;
	private JPanel currentViewPanel;
	private FocusListener editorFocusListener = new FocusAdapter() {
		public void focusLost(FocusEvent e) {
			if (!e.isTemporary()) {
				applyEdit();
			}
		}
	};

	private boolean useShellFolder;

	private ListSelectionModel listSelectionModel;
	private JList list;
	private JTable detailsTable;

	private JButton approveButton;
	private JButton cancelButton;

	private JPanel buttonPanel;
	private JPanel bottomPanel;

	private JComboBox filterComboBox;

	private static final Dimension hstrut5 = new Dimension(5, 1);
	private static final Dimension hstrut11 = new Dimension(11, 1);

	private static final Dimension vstrut5 = new Dimension(1, 5);

	private static final Insets shrinkwrap = new Insets(2, 2, 2, 2);

	// Preferred and Minimum sizes for the dialog box
	private static int PREF_WIDTH = 500;
	private static int PREF_HEIGHT = 326;
	private static Dimension PREF_SIZE = new Dimension(PREF_WIDTH, PREF_HEIGHT);

	private static int MIN_WIDTH = 500;
	private static int MIN_HEIGHT = 326;
	private static Dimension MIN_SIZE = new Dimension(MIN_WIDTH, MIN_HEIGHT);

	private static int LIST_PREF_WIDTH = 405;
	private static int LIST_PREF_HEIGHT = 135;
	private static Dimension LIST_PREF_SIZE = new Dimension(LIST_PREF_WIDTH, LIST_PREF_HEIGHT);

	private static final int COLUMN_FILENAME = 0;
	private static final int COLUMN_FILESIZE = 1;
	private static final int COLUMN_FILETYPE = 2;
	private static final int COLUMN_FILEDATE = 3;
	private static final int COLUMN_FILEATTR = 4;
	private static final int COLUMN_COLCOUNT = 5;

	private int[] COLUMN_WIDTHS = { 150, 75, 130, 130, 40 };

	// Labels, mnemonics, and tooltips (oh my!)
	private int lookInLabelMnemonic = 0;
	private String lookInLabelText = null;
	private String saveInLabelText = null;

	private int fileNameLabelMnemonic = 0;
	private String fileNameLabelText = null;

	private int filesOfTypeLabelMnemonic = 0;
	private String filesOfTypeLabelText = null;

	private String upFolderToolTipText = null;
	private String upFolderAccessibleName = null;

	private String homeFolderToolTipText = null;
	private String homeFolderAccessibleName = null;

	private String newFolderToolTipText = null;
	private String newFolderAccessibleName = null;

	private String listViewButtonToolTipText = null;
	private String listViewButtonAccessibleName = null;

	private String detailsViewButtonToolTipText = null;
	private String detailsViewButtonAccessibleName = null;

	private String fileNameHeaderText = null;
	private String fileSizeHeaderText = null;
	private String fileTypeHeaderText = null;
	private String fileDateHeaderText = null;
	private String fileAttrHeaderText = null;

	//
	// ComponentUI Interface Implementation methods
	//
	public static ComponentUI createUI(JComponent c) {
		return new XPFileChooserUI((JFileChooser) c);
	}

	public XPFileChooserUI(JFileChooser filechooser) {
		super(filechooser);
	}

	public void installUI(JComponent c) {
		super.installUI(c);
	}

	public void uninstallComponents(JFileChooser fc) {
		fc.removeAll();
		bottomPanel = null;
		buttonPanel = null;
	}

	public void installComponents(JFileChooser fc) {
		FileSystemView fsv = fc.getFileSystemView();

		fc.setBorder(new EmptyBorder(12, 12, 11, 11));
		fc.setLayout(new BorderLayout(0, 11));

		// ********************************* //
		// **** Construct the top panel **** //
		// ********************************* //

		// Directory manipulation buttons
		JPanel topPanel = new JPanel(new BorderLayout(11, 0));
		JPanel topButtonPanel = new JPanel();
		topButtonPanel.setLayout(new BoxLayout(topButtonPanel, BoxLayout.LINE_AXIS));
		topPanel.add(topButtonPanel, BorderLayout.AFTER_LINE_ENDS);

		// Add the top panel to the fileChooser
		fc.add(topPanel, BorderLayout.NORTH);

		// ComboBox Label
		lookInLabel = new JLabel(lookInLabelText);
		lookInLabel.setDisplayedMnemonic(lookInLabelMnemonic);
		topPanel.add(lookInLabel, BorderLayout.BEFORE_LINE_BEGINS);

		// CurrentDir ComboBox
		directoryComboBox = new JComboBox();
		directoryComboBox.putClientProperty("JComboBox.lightweightKeyboardNavigation", "Lightweight");
		lookInLabel.setLabelFor(directoryComboBox);
		directoryComboBoxModel = createDirectoryComboBoxModel(fc);
		directoryComboBox.setModel(directoryComboBoxModel);
		directoryComboBox.addActionListener(directoryComboBoxAction);
		directoryComboBox.setRenderer(createDirectoryComboBoxRenderer(fc));
		directoryComboBox.setAlignmentX(JComponent.LEFT_ALIGNMENT);
		directoryComboBox.setAlignmentY(JComponent.TOP_ALIGNMENT);
		directoryComboBox.setMaximumRowCount(8);

		topPanel.add(directoryComboBox, BorderLayout.CENTER);

		// Up Button
		JButton upFolderButton = new JButton(getChangeToParentDirectoryAction());
		upFolderButton.putClientProperty("JToolBar.isToolbarButton",Boolean.TRUE);
		upFolderButton.setOpaque(false);
		upFolderButton.setText(null);
		upFolderButton.setIcon(upFolderIcon);
		upFolderButton.setToolTipText(upFolderToolTipText);
		upFolderButton.getAccessibleContext().setAccessibleName(upFolderAccessibleName);
		upFolderButton.setAlignmentX(JComponent.LEFT_ALIGNMENT);
		upFolderButton.setAlignmentY(JComponent.CENTER_ALIGNMENT);
		upFolderButton.setMargin(new Insets(5,5,5,5));

		topButtonPanel.add(upFolderButton);
		topButtonPanel.add(Box.createRigidArea(hstrut5));

		// Home Button
		File homeDir = fsv.getHomeDirectory();
		String toolTipText = homeFolderToolTipText;
		if (fsv.isRoot(homeDir)) {
			toolTipText = getFileView(fc).getName(homeDir); // Probably "Desktop".
		}

		JButton b = new JButton(homeFolderIcon);
		b.putClientProperty("JToolBar.isToolbarButton",Boolean.TRUE);
		b.setToolTipText(toolTipText);
		b.getAccessibleContext().setAccessibleName(homeFolderAccessibleName);
		b.setAlignmentX(JComponent.LEFT_ALIGNMENT);
		b.setAlignmentY(JComponent.CENTER_ALIGNMENT);
		b.setMargin(new Insets(5,5,5,5));

		b.addActionListener(getGoHomeAction());
		topButtonPanel.add(b);
		topButtonPanel.add(Box.createRigidArea(hstrut5));

		// New Directory Button
		b = new JButton(getNewFolderAction());
		b.putClientProperty("JToolBar.isToolbarButton",Boolean.TRUE);
		b.setText(null);
		b.setIcon(newFolderIcon);
		b.setToolTipText(newFolderToolTipText);
		b.getAccessibleContext().setAccessibleName(newFolderAccessibleName);
		b.setAlignmentX(JComponent.LEFT_ALIGNMENT);
		b.setAlignmentY(JComponent.CENTER_ALIGNMENT);
		b.setMargin(new Insets(5,5,5,5));

		topButtonPanel.add(b);
		topButtonPanel.add(Box.createRigidArea(hstrut5));

		// View button group
		ButtonGroup viewButtonGroup = new ButtonGroup();

		class ViewButtonListener implements ActionListener {
			JFileChooser fc;

			ViewButtonListener(JFileChooser fc) {
				this.fc = fc;
			}

			public void actionPerformed(ActionEvent e) {
				JToggleButton b = (JToggleButton) e.getSource();
				JPanel oldViewPanel = currentViewPanel;

				if (b == detailsViewButton) {
					if (detailsViewPanel == null) {
						detailsViewPanel = createDetailsView(fc);
						detailsViewPanel.setPreferredSize(LIST_PREF_SIZE);
					}
					currentViewPanel = detailsViewPanel;
				} else {
					currentViewPanel = listViewPanel;
				}
				if (currentViewPanel != oldViewPanel) {
					centerPanel.remove(oldViewPanel);
					centerPanel.add(currentViewPanel, BorderLayout.CENTER);
					centerPanel.revalidate();
					centerPanel.repaint();
				}
			}
		}

		ViewButtonListener viewButtonListener = new ViewButtonListener(fc);

		// List Button
		listViewButton = new JToggleButton(listViewIcon);
		listViewButton.putClientProperty("JToolBar.isToolbarButton",Boolean.TRUE);

		listViewButton.setToolTipText(listViewButtonToolTipText);
		listViewButton.getAccessibleContext().setAccessibleName(listViewButtonAccessibleName);
		listViewButton.setSelected(true);
		listViewButton.setAlignmentX(JComponent.LEFT_ALIGNMENT);
		listViewButton.setAlignmentY(JComponent.CENTER_ALIGNMENT);
		listViewButton.setMargin(shrinkwrap);
		listViewButton.addActionListener(viewButtonListener);
		topButtonPanel.add(listViewButton);
		viewButtonGroup.add(listViewButton);

		// Details Button
		detailsViewButton = new JToggleButton(detailsViewIcon);
		detailsViewButton.putClientProperty("JToolBar.isToolbarButton",Boolean.TRUE);
		detailsViewButton.setToolTipText(detailsViewButtonToolTipText);
		detailsViewButton.getAccessibleContext().setAccessibleName(detailsViewButtonAccessibleName);
		detailsViewButton.setAlignmentX(JComponent.LEFT_ALIGNMENT);
		detailsViewButton.setAlignmentY(JComponent.CENTER_ALIGNMENT);
		detailsViewButton.setMargin(shrinkwrap);
		detailsViewButton.addActionListener(viewButtonListener);
		topButtonPanel.add(detailsViewButton);
		viewButtonGroup.add(detailsViewButton);

		// Use ShellFolder class to populate combobox only if
		// FileSystemView.getRoots() returns one folder and that is
		// the same as the first item in the ShellFolder combobox list.
		{
			useShellFolder = false;
			File[] roots = fsv.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;
				}
			}
		}

		// ************************************** //
		// ******* Add the directory pane ******* //
		// ************************************** //
		centerPanel = new JPanel(new BorderLayout());
		listViewPanel = createList(fc);
		listSelectionModel = list.getSelectionModel();
		listViewPanel.setPreferredSize(LIST_PREF_SIZE);
		centerPanel.add(listViewPanel, BorderLayout.CENTER);
		currentViewPanel = listViewPanel;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久影视| 首页综合国产亚洲丝袜| 久久爱www久久做| 欧美性受xxxx| 日本欧美在线看| 26uuu精品一区二区在线观看| 久久er精品视频| 国产欧美一区二区精品性色超碰| 丁香桃色午夜亚洲一区二区三区 | 色婷婷av一区| 一区二区三区加勒比av| 欧美日韩国产高清一区| 激情久久五月天| 国产精品久线观看视频| 日本精品裸体写真集在线观看| 亚洲午夜久久久| 精品久久久网站| 不卡的av电影| 亚洲超碰精品一区二区| 精品91自产拍在线观看一区| 国产不卡视频在线播放| 亚洲一区二区三区在线看| 欧美一区二区三区在线观看| 国产精品18久久久久久久久| 亚洲黄色av一区| 欧美大片顶级少妇| 99久久精品久久久久久清纯| 午夜精品久久久久久久久久久 | 丝袜国产日韩另类美女| 久久午夜老司机| 91国偷自产一区二区三区成为亚洲经典 | 欧美图区在线视频| 国内精品不卡在线| 一区二区三区在线观看动漫| 久久蜜桃一区二区| 欧洲av在线精品| 国产不卡一区视频| 日韩国产在线观看| 中文字幕亚洲区| 日韩免费看的电影| 一本大道综合伊人精品热热| 国产在线国偷精品免费看| 一区二区免费在线播放| 久久久99免费| 555夜色666亚洲国产免| 99这里都是精品| 国内不卡的二区三区中文字幕 | 日韩国产在线观看一区| 国产精品久久久久久久久晋中 | 国产精品久久久久久久第一福利| 91精品国产欧美一区二区18| 95精品视频在线| 国产综合久久久久久鬼色| 午夜伊人狠狠久久| 日韩美女精品在线| 中文字幕欧美国产| 精品99久久久久久| 日韩精品一区二区三区swag | 欧美精品在线视频| 波多野结衣视频一区| 国产一区免费电影| 日本系列欧美系列| 一级日本不卡的影视| 国产精品久久久久久久浪潮网站| 日韩一级欧美一级| 欧美日韩第一区日日骚| 欧美专区日韩专区| eeuss国产一区二区三区| 国产精品夜夜爽| 国产一区二区三区日韩| 老色鬼精品视频在线观看播放| 亚洲成人黄色小说| 亚洲国产sm捆绑调教视频| 亚洲精品视频在线观看网站| 国产精品久久久久久久久久久免费看 | 亚洲人123区| 国产精品久久毛片| 中文字幕一区二区三区在线观看| 久久久国产午夜精品| www国产精品av| 久久欧美中文字幕| 久久久久高清精品| 国产婷婷色一区二区三区四区| 精品国产亚洲在线| 久久精品视频一区二区| 国产亚洲短视频| 国产精品全国免费观看高清 | 色视频欧美一区二区三区| 91麻豆成人久久精品二区三区| 成人av免费网站| 色综合久久久久网| 欧美老女人在线| 日韩欧美国产成人一区二区| 欧美大片国产精品| 国产丝袜欧美中文另类| 国产精品热久久久久夜色精品三区| 欧美国产精品一区二区三区| 国产精品久久久久影院色老大 | 91在线视频在线| 欧洲一区二区三区在线| 欧美一区二区在线免费观看| 精品国内片67194| 国产女同性恋一区二区| 一区二区欧美精品| 麻豆精品一区二区综合av| 国产成人亚洲精品狼色在线 | 成人精品高清在线| 欧洲一区二区三区免费视频| 欧美一二三区在线观看| 国产欧美日韩亚州综合 | 91精品国产综合久久香蕉麻豆| 国产欧美一区二区精品久导航| 亚洲国产精品成人综合| 亚洲综合丁香婷婷六月香| 久久福利资源站| 91网站最新网址| 日韩欧美中文字幕一区| 亚洲欧洲成人精品av97| 免费在线一区观看| 99久久国产综合精品女不卡| 欧美另类videos死尸| 中文字幕国产一区| 日韩avvvv在线播放| 成人a免费在线看| 日韩色在线观看| 亚洲图片欧美激情| 久久国产精品无码网站| 91看片淫黄大片一级| 精品国产一区二区三区忘忧草 | 最新热久久免费视频| 美女mm1313爽爽久久久蜜臀| 99综合影院在线| 国产午夜精品久久| 日韩福利视频导航| 色一区在线观看| 欧美国产视频在线| 91麻豆国产自产在线观看| 国产日韩欧美不卡在线| 一区二区免费在线播放| 亚洲一区二区三区免费视频| 蜜臀91精品一区二区三区 | 亚洲风情在线资源站| 成人av网站大全| 精品国产自在久精品国产| 亚洲va国产天堂va久久en| av日韩在线网站| 国产亚洲一区字幕| 成人高清免费在线播放| 欧美一区二区福利视频| 一区二区三区在线视频观看58| 国产精品69毛片高清亚洲| 日韩精品一区二区在线| 日韩经典一区二区| 欧美三级日韩三级国产三级| 亚洲素人一区二区| av一本久道久久综合久久鬼色| 精品国产免费久久| 免费不卡在线观看| 欧美精品v国产精品v日韩精品 | 欧美日韩精品福利| 国产河南妇女毛片精品久久久| 免费美女久久99| 在线不卡一区二区| 亚洲va欧美va国产va天堂影院| 日本道免费精品一区二区三区| 亚洲欧美自拍偷拍| 播五月开心婷婷综合| 中文字幕av在线一区二区三区| 国产一区二区在线看| 久久人人97超碰com| 国产福利一区二区三区在线视频| 精品国产三级电影在线观看| 美女网站色91| 久久青草欧美一区二区三区| 国产精品一二三区在线| 中文字幕国产精品一区二区| 成人小视频免费观看| 成人免费在线播放视频| 色综合久久久久| 一区二区三区免费观看| 欧美亚洲国产一区二区三区| 亚洲美女区一区| 精品视频在线免费| 日本在线不卡一区| 日韩欧美综合在线| 国产不卡视频一区| 亚洲欧美另类图片小说| 欧美日韩另类一区| 精品系列免费在线观看| 国产人久久人人人人爽| 欧美日韩精品福利| 美女视频黄a大片欧美| 久久久久久久综合| 97精品国产露脸对白| 亚洲1区2区3区视频| 久久男人中文字幕资源站| av电影天堂一区二区在线 | 欧美电影在线免费观看| 韩国成人福利片在线播放| 亚洲日本韩国一区|