Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
0e87a543
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看板
提交
0e87a543
编写于
7月 14, 2009
作者:
A
anthony
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6837446: Introduce Window.isOpaque() method
Reviewed-by: art, alexp
上级
36ea5fda
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
34 addition
and
27 deletion
+34
-27
src/share/classes/com/sun/awt/AWTUtilities.java
src/share/classes/com/sun/awt/AWTUtilities.java
+1
-1
src/share/classes/java/awt/Component.java
src/share/classes/java/awt/Component.java
+2
-4
src/share/classes/java/awt/GraphicsDevice.java
src/share/classes/java/awt/GraphicsDevice.java
+2
-2
src/share/classes/java/awt/Window.java
src/share/classes/java/awt/Window.java
+23
-7
src/share/classes/javax/swing/DefaultDesktopManager.java
src/share/classes/javax/swing/DefaultDesktopManager.java
+1
-1
src/share/classes/javax/swing/RepaintManager.java
src/share/classes/javax/swing/RepaintManager.java
+3
-3
src/share/classes/sun/awt/AWTAccessor.java
src/share/classes/sun/awt/AWTAccessor.java
+0
-5
src/share/classes/sun/awt/SunToolkit.java
src/share/classes/sun/awt/SunToolkit.java
+1
-2
src/windows/classes/sun/awt/windows/WWindowPeer.java
src/windows/classes/sun/awt/windows/WWindowPeer.java
+1
-2
未找到文件。
src/share/classes/com/sun/awt/AWTUtilities.java
浏览文件 @
0e87a543
...
...
@@ -374,7 +374,7 @@ public final class AWTUtilities {
"The window argument should not be null."
);
}
return
AWTAccessor
.
getWindowAccessor
().
isOpaque
(
window
);
return
window
.
isOpaque
(
);
}
/**
...
...
src/share/classes/java/awt/Component.java
浏览文件 @
0e87a543
...
...
@@ -2370,12 +2370,10 @@ public abstract class Component implements ImageObserver, MenuContainer,
* rectangular region. A non-opaque component paints only some of
* its pixels, allowing the pixels underneath it to "show through".
* A component that does not fully paint its pixels therefore
* provides a degree of transparency. Only lightweight
* components can be transparent.
* provides a degree of transparency.
* <p>
* Subclasses that guarantee to always completely paint their
* contents should override this method and return true. All
* of the "heavyweight" AWT components are opaque.
* contents should override this method and return true.
*
* @return true if this component is completely opaque
* @see #isLightweight
...
...
src/share/classes/java/awt/GraphicsDevice.java
浏览文件 @
0e87a543
...
...
@@ -281,8 +281,8 @@ public abstract class GraphicsDevice {
if
(
w
.
getOpacity
()
<
1.0f
)
{
w
.
setOpacity
(
1.0f
);
}
Color
bgColor
=
w
.
getBackground
();
if
((
bgColor
!=
null
)
&&
(
bgColor
.
getAlpha
()
<
255
))
{
if
(!
w
.
isOpaque
())
{
Color
bgColor
=
w
.
getBackground
();
bgColor
=
new
Color
(
bgColor
.
getRed
(),
bgColor
.
getGreen
(),
bgColor
.
getBlue
(),
255
);
w
.
setBackground
(
bgColor
);
...
...
src/share/classes/java/awt/Window.java
浏览文件 @
0e87a543
...
...
@@ -3521,6 +3521,7 @@ public class Window extends Container implements Accessible {
* @return this component's background color
*
* @see Window#setBackground
* @see Window#isOpaque
* @see GraphicsDevice.WindowTranslucency
*/
@Override
...
...
@@ -3583,6 +3584,7 @@ public class Window extends Container implements Accessible {
* PERPIXEL_TRANSLUCENT} translucency is not supported
*
* @see Window#getBackground
* @see Window#isOpaque
* @see Window#setOpacity()
* @see Window#setShape()
* @see GraphicsDevice.WindowTranslucency
...
...
@@ -3623,6 +3625,25 @@ public class Window extends Container implements Accessible {
}
}
/**
* Indicates if the window is currently opaque.
* <p>
* The method returns {@code false} if the background color of the window
* is not {@code null} and the alpha component of the color is less than
* 1.0f. The method returns {@code true} otherwise.
*
* @return {@code true} if the window is opaque, {@code false} otherwise
*
* @see Window#getBackground
* @see Window#setBackground
* @since 1.7
*/
@Override
public
boolean
isOpaque
()
{
Color
bg
=
getBackground
();
return
bg
!=
null
?
bg
.
getAlpha
()
==
255
:
true
;
}
private
void
updateWindow
()
{
synchronized
(
getTreeLock
())
{
WindowPeer
peer
=
(
WindowPeer
)
getPeer
();
...
...
@@ -3639,12 +3660,11 @@ public class Window extends Container implements Accessible {
*/
@Override
public
void
paint
(
Graphics
g
)
{
Color
bgColor
=
getBackground
();
if
((
bgColor
!=
null
)
&&
(
bgColor
.
getAlpha
()
<
255
))
{
if
(!
isOpaque
())
{
Graphics
gg
=
g
.
create
();
try
{
if
(
gg
instanceof
Graphics2D
)
{
gg
.
setColor
(
bgColor
);
gg
.
setColor
(
getBackground
()
);
((
Graphics2D
)
gg
).
setComposite
(
AlphaComposite
.
getInstance
(
AlphaComposite
.
SRC
));
gg
.
fillRect
(
0
,
0
,
getWidth
(),
getHeight
());
}
...
...
@@ -3749,10 +3769,6 @@ public class Window extends Container implements Accessible {
public
void
setShape
(
Window
window
,
Shape
shape
)
{
window
.
setShape
(
shape
);
}
public
boolean
isOpaque
(
Window
window
)
{
Color
bg
=
window
.
getBackground
();
return
(
bg
!=
null
)
?
bg
.
getAlpha
()
==
255
:
true
;
}
public
void
setOpaque
(
Window
window
,
boolean
opaque
)
{
Color
bg
=
window
.
getBackground
();
if
(
bg
==
null
)
{
...
...
src/share/classes/javax/swing/DefaultDesktopManager.java
浏览文件 @
0e87a543
...
...
@@ -708,7 +708,7 @@ public class DefaultDesktopManager implements DesktopManager, java.io.Serializab
// update window if it's non-opaque
Window
topLevel
=
SwingUtilities
.
getWindowAncestor
(
f
);
Toolkit
tk
=
Toolkit
.
getDefaultToolkit
();
if
(!
AWTAccessor
.
getWindowAccessor
().
isOpaque
(
topLevel
)
&&
if
(!
topLevel
.
isOpaque
(
)
&&
(
tk
instanceof
SunToolkit
)
&&
((
SunToolkit
)
tk
).
needUpdateWindow
())
{
...
...
src/share/classes/javax/swing/RepaintManager.java
浏览文件 @
0e87a543
...
...
@@ -732,7 +732,7 @@ public class RepaintManager
(
Window
)
dirty
:
SwingUtilities
.
getWindowAncestor
(
dirty
);
if
(
window
!=
null
&&
!
AWTAccessor
.
getWindowAccessor
().
isOpaque
(
window
))
!
window
.
isOpaque
(
))
{
windows
.
add
(
window
);
}
...
...
@@ -996,7 +996,7 @@ public class RepaintManager
// If the window is non-opaque, it's double-buffered at peer's level
Window
w
=
(
c
instanceof
Window
)
?
(
Window
)
c
:
SwingUtilities
.
getWindowAncestor
(
c
);
if
(!
AWTAccessor
.
getWindowAccessor
().
isOpaque
(
w
))
{
if
(!
w
.
isOpaque
(
))
{
Toolkit
tk
=
Toolkit
.
getDefaultToolkit
();
if
((
tk
instanceof
SunToolkit
)
&&
(((
SunToolkit
)
tk
).
needUpdateWindow
()))
{
return
null
;
...
...
@@ -1032,7 +1032,7 @@ public class RepaintManager
// If the window is non-opaque, it's double-buffered at peer's level
Window
w
=
(
c
instanceof
Window
)
?
(
Window
)
c
:
SwingUtilities
.
getWindowAncestor
(
c
);
if
(!
AWTAccessor
.
getWindowAccessor
().
isOpaque
(
w
))
{
if
(!
w
.
isOpaque
(
))
{
Toolkit
tk
=
Toolkit
.
getDefaultToolkit
();
if
((
tk
instanceof
SunToolkit
)
&&
(((
SunToolkit
)
tk
).
needUpdateWindow
()))
{
return
null
;
...
...
src/share/classes/sun/awt/AWTAccessor.java
浏览文件 @
0e87a543
...
...
@@ -136,11 +136,6 @@ public final class AWTAccessor {
* Set a shape to the given window.
*/
void
setShape
(
Window
window
,
Shape
shape
);
/*
* Identify whether the given window is opaque (true)
* or translucent (false).
*/
boolean
isOpaque
(
Window
window
);
/*
* Set the opaque preoperty to the given window.
*/
...
...
src/share/classes/sun/awt/SunToolkit.java
浏览文件 @
0e87a543
...
...
@@ -1985,8 +1985,7 @@ public abstract class SunToolkit extends Toolkit
*/
public
static
boolean
isContainingTopLevelOpaque
(
Component
c
)
{
Window
w
=
getContainingWindow
(
c
);
return
w
!=
null
&&
((
Window
)
w
).
getBackground
()
!=
null
&&
((
Window
)
w
).
getBackground
().
getAlpha
()
==
255
;
return
w
!=
null
&&
w
.
isOpaque
();
}
/**
...
...
src/windows/classes/sun/awt/windows/WWindowPeer.java
浏览文件 @
0e87a543
...
...
@@ -194,8 +194,7 @@ public class WWindowPeer extends WPanelPeer implements WindowPeer,
// default value of a boolean field is 'false', so set isOpaque to
// true here explicitly
this
.
isOpaque
=
true
;
Color
bgColor
=
((
Window
)
target
).
getBackground
();
setOpaque
((
bgColor
==
null
)
||
(
bgColor
.
getAlpha
()
==
255
));
setOpaque
(((
Window
)
target
).
isOpaque
());
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录