开源 企业版 高校版 私有云 模力方舟 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
/
ImageCache.java
Java12Source
/
src
/
java.desktop
/
sun
/
swing
/
ImageCache.java
ImageCache.java 5.48 KB
一键复制 编辑 原始数据 按行查看 历史
Stefan 提交于 2021年03月18日 23:35 +08:00 . init
/*
* Copyright (c) 2006, 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.GraphicsConfiguration;
import java.awt.Image;
import java.lang.ref.SoftReference;
import java.util.Iterator;
import java.util.LinkedList;
/**
* Cache is used to cache an image based on a set of arguments.
*/
public class ImageCache {
// Maximum number of entries to cache
private int maxCount;
// The entries.
private final LinkedList<SoftReference<Entry>> entries;
public ImageCache(int maxCount) {
this.maxCount = maxCount;
entries = new LinkedList<SoftReference<Entry>>();
}
void setMaxCount(int maxCount) {
this.maxCount = maxCount;
}
public void flush() {
entries.clear();
}
private Entry getEntry(Object key, GraphicsConfiguration config,
int w, int h, Object[] args) {
Entry entry;
Iterator<SoftReference<Entry>> iter = entries.listIterator();
while (iter.hasNext()) {
SoftReference<Entry> ref = iter.next();
entry = ref.get();
if (entry == null) {
// SoftReference was invalidated, remove the entry
iter.remove();
}
else if (entry.equals(config, w, h, args)) {
// Put most recently used entries at the head
iter.remove();
entries.addFirst(ref);
return entry;
}
}
// Entry doesn't exist
entry = new Entry(config, w, h, args);
if (entries.size() >= maxCount) {
entries.removeLast();
}
entries.addFirst(new SoftReference<Entry>(entry));
return entry;
}
/**
* Returns the cached Image, or null, for the specified arguments.
*/
public Image getImage(Object key, GraphicsConfiguration config,
int w, int h, Object[] args) {
Entry entry = getEntry(key, config, w, h, args);
return entry.getImage();
}
/**
* Sets the cached image for the specified constraints.
*/
public void setImage(Object key, GraphicsConfiguration config,
int w, int h, Object[] args, Image image) {
Entry entry = getEntry(key, config, w, h, args);
entry.setImage(image);
}
/**
* Caches set of arguments and Image.
*/
private static class Entry {
private final GraphicsConfiguration config;
private final int w;
private final int h;
private final Object[] args;
private Image image;
Entry(GraphicsConfiguration config, int w, int h, Object[] args) {
this.config = config;
this.args = args;
this.w = w;
this.h = h;
}
public void setImage(Image image) {
this.image = image;
}
public Image getImage() {
return image;
}
public String toString() {
String value = super.toString() +
"[ graphicsConfig=" + config +
", image=" + image +
", w=" + w + ", h=" + h;
if (args != null) {
for (int counter = 0; counter < args.length; counter++) {
value += ", " + args[counter];
}
}
value += "]";
return value;
}
public boolean equals(GraphicsConfiguration config,
int w, int h, Object[] args) {
if (this.w == w && this.h == h &&
((this.config != null && this.config.equals(config)) ||
(this.config == null && config == null))) {
if (this.args == null && args == null) {
return true;
}
if (this.args != null && args != null &&
this.args.length == args.length) {
for (int counter = args.length - 1; counter >= 0;
counter--) {
Object a1 = this.args[counter];
Object a2 = args[counter];
if ((a1 == null && a2 != null) ||
(a1 != null && !a1.equals(a2))) {
return false;
}
}
return true;
}
}
return false;
}
}
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

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

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

取消
提交

发行版

暂无发行版

贡献者

全部

近期动态

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

搜索帮助

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

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