Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
d1c106be
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
d1c106be
编写于
11月 30, 2010
作者:
D
dav
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6783910: (dav) java.awt.Color.brighter()/darker() methods make color opaque
Reviewed-by: art, yan
上级
fa0b06bb
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
70 addition
and
7 deletion
+70
-7
src/share/classes/java/awt/Color.java
src/share/classes/java/awt/Color.java
+16
-7
test/java/awt/Color/OpacityChange/OpacityChange.java
test/java/awt/Color/OpacityChange/OpacityChange.java
+54
-0
未找到文件。
src/share/classes/java/awt/Color.java
浏览文件 @
d1c106be
...
@@ -611,12 +611,15 @@ public class Color implements Paint, java.io.Serializable {
...
@@ -611,12 +611,15 @@ public class Color implements Paint, java.io.Serializable {
* <p>
* <p>
* This method applies an arbitrary scale factor to each of the three RGB
* This method applies an arbitrary scale factor to each of the three RGB
* components of this <code>Color</code> to create a brighter version
* components of this <code>Color</code> to create a brighter version
* of this <code>Color</code>. Although <code>brighter</code> and
* of this <code>Color</code>.
* The {@code alpha} value is preserved.
* Although <code>brighter</code> and
* <code>darker</code> are inverse operations, the results of a
* <code>darker</code> are inverse operations, the results of a
* series of invocations of these two methods might be inconsistent
* series of invocations of these two methods might be inconsistent
* because of rounding errors.
* because of rounding errors.
* @return a new <code>Color</code> object that is
* @return a new <code>Color</code> object that is
* a brighter version of this <code>Color</code>.
* a brighter version of this <code>Color</code>
* with the same {@code alpha} value.
* @see java.awt.Color#darker
* @see java.awt.Color#darker
* @since JDK1.0
* @since JDK1.0
*/
*/
...
@@ -624,6 +627,7 @@ public class Color implements Paint, java.io.Serializable {
...
@@ -624,6 +627,7 @@ public class Color implements Paint, java.io.Serializable {
int
r
=
getRed
();
int
r
=
getRed
();
int
g
=
getGreen
();
int
g
=
getGreen
();
int
b
=
getBlue
();
int
b
=
getBlue
();
int
alpha
=
getAlpha
();
/* From 2D group:
/* From 2D group:
* 1. black.brighter() should return grey
* 1. black.brighter() should return grey
...
@@ -632,7 +636,7 @@ public class Color implements Paint, java.io.Serializable {
...
@@ -632,7 +636,7 @@ public class Color implements Paint, java.io.Serializable {
*/
*/
int
i
=
(
int
)(
1.0
/(
1.0
-
FACTOR
));
int
i
=
(
int
)(
1.0
/(
1.0
-
FACTOR
));
if
(
r
==
0
&&
g
==
0
&&
b
==
0
)
{
if
(
r
==
0
&&
g
==
0
&&
b
==
0
)
{
return
new
Color
(
i
,
i
,
i
);
return
new
Color
(
i
,
i
,
i
,
alpha
);
}
}
if
(
r
>
0
&&
r
<
i
)
r
=
i
;
if
(
r
>
0
&&
r
<
i
)
r
=
i
;
if
(
g
>
0
&&
g
<
i
)
g
=
i
;
if
(
g
>
0
&&
g
<
i
)
g
=
i
;
...
@@ -640,7 +644,8 @@ public class Color implements Paint, java.io.Serializable {
...
@@ -640,7 +644,8 @@ public class Color implements Paint, java.io.Serializable {
return
new
Color
(
Math
.
min
((
int
)(
r
/
FACTOR
),
255
),
return
new
Color
(
Math
.
min
((
int
)(
r
/
FACTOR
),
255
),
Math
.
min
((
int
)(
g
/
FACTOR
),
255
),
Math
.
min
((
int
)(
g
/
FACTOR
),
255
),
Math
.
min
((
int
)(
b
/
FACTOR
),
255
));
Math
.
min
((
int
)(
b
/
FACTOR
),
255
),
alpha
);
}
}
/**
/**
...
@@ -649,19 +654,23 @@ public class Color implements Paint, java.io.Serializable {
...
@@ -649,19 +654,23 @@ public class Color implements Paint, java.io.Serializable {
* <p>
* <p>
* This method applies an arbitrary scale factor to each of the three RGB
* This method applies an arbitrary scale factor to each of the three RGB
* components of this <code>Color</code> to create a darker version of
* components of this <code>Color</code> to create a darker version of
* this <code>Color</code>. Although <code>brighter</code> and
* this <code>Color</code>.
* The {@code alpha} value is preserved.
* Although <code>brighter</code> and
* <code>darker</code> are inverse operations, the results of a series
* <code>darker</code> are inverse operations, the results of a series
* of invocations of these two methods might be inconsistent because
* of invocations of these two methods might be inconsistent because
* of rounding errors.
* of rounding errors.
* @return a new <code>Color</code> object that is
* @return a new <code>Color</code> object that is
* a darker version of this <code>Color</code>.
* a darker version of this <code>Color</code>
* with the same {@code alpha} value.
* @see java.awt.Color#brighter
* @see java.awt.Color#brighter
* @since JDK1.0
* @since JDK1.0
*/
*/
public
Color
darker
()
{
public
Color
darker
()
{
return
new
Color
(
Math
.
max
((
int
)(
getRed
()
*
FACTOR
),
0
),
return
new
Color
(
Math
.
max
((
int
)(
getRed
()
*
FACTOR
),
0
),
Math
.
max
((
int
)(
getGreen
()*
FACTOR
),
0
),
Math
.
max
((
int
)(
getGreen
()*
FACTOR
),
0
),
Math
.
max
((
int
)(
getBlue
()
*
FACTOR
),
0
));
Math
.
max
((
int
)(
getBlue
()
*
FACTOR
),
0
),
getAlpha
());
}
}
/**
/**
...
...
test/java/awt/Color/OpacityChange/OpacityChange.java
0 → 100644
浏览文件 @
d1c106be
/*
* Copyright (c) 2010, 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.
*
* 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.
*/
/*
@test
@bug 6783910
@summary java.awt.Color.brighter()/darker() methods make color opaque
@author Andrei Dmitriev: area=awt-color
@run main OpacityChange
*/
import
java.awt.*
;
public
class
OpacityChange
{
private
final
static
int
INITIAL_ALPHA
=
125
;
public
static
void
main
(
String
argv
[])
{
Color
color
=
new
Color
(
20
,
20
,
20
,
INITIAL_ALPHA
);
System
.
out
.
println
(
"Initial alpha: "
+
color
.
getAlpha
());
Color
colorBrighter
=
color
.
brighter
();
System
.
out
.
println
(
"New alpha (after brighter): "
+
colorBrighter
.
getAlpha
());
Color
colorDarker
=
color
.
darker
();
System
.
out
.
println
(
"New alpha (after darker): "
+
colorDarker
.
getAlpha
());
if
(
INITIAL_ALPHA
!=
colorBrighter
.
getAlpha
())
{
throw
new
RuntimeException
(
"Brighter color alpha has changed from : "
+
INITIAL_ALPHA
+
" to "
+
colorBrighter
.
getAlpha
());
}
if
(
INITIAL_ALPHA
!=
colorDarker
.
getAlpha
())
{
throw
new
RuntimeException
(
"Darker color alpha has changed from : "
+
INITIAL_ALPHA
+
" to "
+
colorDarker
.
getAlpha
());
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录