开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1)
master
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
项目仓库所选许可证以仓库主分支所使用许可证为准
master
分支 (1)
master
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1)
master
Java12Source
/
src
/
java.desktop
/
sun
/
swing
/
WindowsPlacesBar.java
Java12Source
/
src
/
java.desktop
/
sun
/
swing
/
WindowsPlacesBar.java
WindowsPlacesBar.java 7.79 KB
一键复制 编辑 原始数据 按行查看 历史
Stefan 提交于 2021年03月18日 23:35 +08:00 . init
/*
* Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code 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
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package sun.swing;
import java.awt.Dimension;
import java.awt.Insets;
import java.awt.Color;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
import java.security.AccessController;
import java.security.PrivilegedAction;
import javax.swing.JToolBar;
import javax.swing.JFileChooser;
import javax.swing.JToggleButton;
import javax.swing.ButtonGroup;
import javax.swing.UIManager;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.Box;
import javax.swing.border.EmptyBorder;
import javax.swing.border.BevelBorder;
import javax.swing.filechooser.FileSystemView;
import sun.awt.shell.ShellFolder;
import sun.awt.OSInfo;
/**
* <b>WARNING:</b> This class is an implementation detail and is only
* public so that it can be used by two packages. You should NOT consider
* this public API.
*
* @author Leif Samuelsson
*/
@SuppressWarnings("serial") // JDK-implementation class
public class WindowsPlacesBar extends JToolBar
implements ActionListener, PropertyChangeListener {
JFileChooser fc;
JToggleButton[] buttons;
ButtonGroup buttonGroup;
File[] files;
final Dimension buttonSize;
public WindowsPlacesBar(JFileChooser fc, boolean isXPStyle) {
super(JToolBar.VERTICAL);
this.fc = fc;
setFloatable(false);
putClientProperty("JToolBar.isRollover", Boolean.TRUE);
boolean isXPPlatform = (OSInfo.getOSType() == OSInfo.OSType.WINDOWS &&
OSInfo.getWindowsVersion().compareTo(OSInfo.WINDOWS_XP) >= 0);
if (isXPStyle) {
buttonSize = new Dimension(83, 69);
putClientProperty("XPStyle.subAppName", "placesbar");
setBorder(new EmptyBorder(1, 1, 1, 1));
} else {
// The button size almost matches the XP style when in Classic style on XP
buttonSize = new Dimension(83, isXPPlatform ? 65 : 54);
setBorder(new BevelBorder(BevelBorder.LOWERED,
UIManager.getColor("ToolBar.highlight"),
UIManager.getColor("ToolBar.background"),
UIManager.getColor("ToolBar.darkShadow"),
UIManager.getColor("ToolBar.shadow")));
}
Color bgColor = new Color(UIManager.getColor("ToolBar.shadow").getRGB());
setBackground(bgColor);
FileSystemView fsv = fc.getFileSystemView();
files = fsv.getChooserShortcutPanelFiles();
buttons = new JToggleButton[files.length];
buttonGroup = new ButtonGroup();
for (int i = 0; i < files.length; i++) {
if (fsv.isFileSystemRoot(files[i])) {
// Create special File wrapper for drive path
files[i] = fsv.createFileObject(files[i].getAbsolutePath());
}
String folderName = fsv.getSystemDisplayName(files[i]);
int index = folderName.lastIndexOf(File.separatorChar);
if (index >= 0 && index < folderName.length() - 1) {
folderName = folderName.substring(index + 1);
}
Icon icon;
if (files[i] instanceof ShellFolder) {
// We want a large icon, fsv only gives us a small.
ShellFolder sf = (ShellFolder)files[i];
Image image = sf.getIcon(true);
if (image == null) {
// Get default image
image = (Image) ShellFolder.get("shell32LargeIcon 1");
}
icon = image == null ? null : new ImageIcon(image, sf.getFolderType());
} else {
icon = fsv.getSystemIcon(files[i]);
}
buttons[i] = new JToggleButton(folderName, icon);
if (isXPStyle) {
buttons[i].putClientProperty("XPStyle.subAppName", "placesbar");
} else {
Color fgColor = new Color(UIManager.getColor("List.selectionForeground").getRGB());
buttons[i].setContentAreaFilled(false);
buttons[i].setForeground(fgColor);
}
buttons[i].setMargin(new Insets(3, 2, 1, 2));
buttons[i].setFocusPainted(false);
buttons[i].setIconTextGap(0);
buttons[i].setHorizontalTextPosition(JToggleButton.CENTER);
buttons[i].setVerticalTextPosition(JToggleButton.BOTTOM);
buttons[i].setAlignmentX(JComponent.CENTER_ALIGNMENT);
buttons[i].setPreferredSize(buttonSize);
buttons[i].setMaximumSize(buttonSize);
buttons[i].addActionListener(this);
add(buttons[i]);
if (i < files.length-1 && isXPStyle) {
add(Box.createRigidArea(new Dimension(1, 1)));
}
buttonGroup.add(buttons[i]);
}
doDirectoryChanged(fc.getCurrentDirectory());
}
protected void doDirectoryChanged(File f) {
for (int i=0; i<buttons.length; i++) {
JToggleButton b = buttons[i];
if (files[i].equals(f)) {
b.setSelected(true);
break;
} else if (b.isSelected()) {
// Remove temporarily from group because it doesn't
// allow for no button to be selected.
buttonGroup.remove(b);
b.setSelected(false);
buttonGroup.add(b);
}
}
}
public void propertyChange(PropertyChangeEvent e) {
String prop = e.getPropertyName();
if (prop == JFileChooser.DIRECTORY_CHANGED_PROPERTY) {
doDirectoryChanged(fc.getCurrentDirectory());
}
}
public void actionPerformed(ActionEvent e) {
JToggleButton b = (JToggleButton)e.getSource();
for (int i=0; i<buttons.length; i++) {
if (b == buttons[i]) {
fc.setCurrentDirectory(files[i]);
break;
}
}
}
public Dimension getPreferredSize() {
Dimension min = super.getMinimumSize();
Dimension pref = super.getPreferredSize();
int h = min.height;
if (buttons != null && buttons.length > 0 && buttons.length < 5) {
JToggleButton b = buttons[0];
if (b != null) {
int bh = 5 * (b.getPreferredSize().height + 1);
if (bh > h) {
h = bh;
}
}
}
if (h > pref.height) {
pref = new Dimension(pref.width, h);
}
return pref;
}
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/stefanpy/Java12Source.git
git@gitee.com:stefanpy/Java12Source.git
stefanpy
Java12Source
Java12Source
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /