Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
9f4ed0d7
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
3
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9f4ed0d7
编写于
7月 14, 2009
作者:
Y
yan
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
e003fcaa
0e87a543
变更
17
隐藏空白更改
内联
并排
Showing
17 changed file
with
332 addition
and
50 deletion
+332
-50
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/Robot.java
src/share/classes/java/awt/Robot.java
+23
-18
src/share/classes/java/awt/TrayIcon.java
src/share/classes/java/awt/TrayIcon.java
+3
-0
src/share/classes/java/awt/Window.java
src/share/classes/java/awt/Window.java
+24
-8
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/solaris/classes/sun/awt/X11/XBaseWindow.java
src/solaris/classes/sun/awt/X11/XBaseWindow.java
+1
-4
src/windows/classes/sun/awt/windows/WWindowPeer.java
src/windows/classes/sun/awt/windows/WWindowPeer.java
+1
-2
test/java/awt/Robot/CtorTest/CtorTest.java
test/java/awt/Robot/CtorTest/CtorTest.java
+71
-0
test/java/awt/TrayIcon/CtorTest/CtorTest.java
test/java/awt/TrayIcon/CtorTest/CtorTest.java
+53
-0
test/java/awt/Window/OwnedWindowsLeak/OwnedWindowsLeak.java
test/java/awt/Window/OwnedWindowsLeak/OwnedWindowsLeak.java
+1
-0
test/java/awt/Window/SetBackgroundNPE/SetBackgroundNPE.java
test/java/awt/Window/SetBackgroundNPE/SetBackgroundNPE.java
+38
-0
test/java/awt/event/MouseWheelEvent/DisabledComponent/DisabledComponent.java
.../MouseWheelEvent/DisabledComponent/DisabledComponent.java
+107
-0
未找到文件。
src/share/classes/com/sun/awt/AWTUtilities.java
浏览文件 @
9f4ed0d7
...
...
@@ -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
浏览文件 @
9f4ed0d7
...
...
@@ -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
浏览文件 @
9f4ed0d7
...
...
@@ -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/Robot.java
浏览文件 @
9f4ed0d7
...
...
@@ -70,7 +70,7 @@ public class Robot {
private
RobotPeer
peer
;
private
boolean
isAutoWaitForIdle
=
false
;
private
int
autoDelay
=
0
;
private
static
int
LEGAL_BUTTON_MASK
;
private
static
int
LEGAL_BUTTON_MASK
=
0
;
// location of robot's GC, used in mouseMove(), getPixelColor() and captureScreenImage()
private
Point
gdLoc
;
...
...
@@ -95,23 +95,6 @@ public class Robot {
}
init
(
GraphicsEnvironment
.
getLocalGraphicsEnvironment
()
.
getDefaultScreenDevice
());
int
tmpMask
=
0
;
if
(
Toolkit
.
getDefaultToolkit
().
areExtraMouseButtonsEnabled
()){
if
(
Toolkit
.
getDefaultToolkit
()
instanceof
SunToolkit
)
{
final
int
buttonsNumber
=
((
SunToolkit
)(
Toolkit
.
getDefaultToolkit
())).
getNumberOfButtons
();
for
(
int
i
=
0
;
i
<
buttonsNumber
;
i
++){
tmpMask
|=
InputEvent
.
getMaskForButton
(
i
+
1
);
}
}
}
tmpMask
|=
InputEvent
.
BUTTON1_MASK
|
InputEvent
.
BUTTON2_MASK
|
InputEvent
.
BUTTON3_MASK
|
InputEvent
.
BUTTON1_DOWN_MASK
|
InputEvent
.
BUTTON2_DOWN_MASK
|
InputEvent
.
BUTTON3_DOWN_MASK
;
LEGAL_BUTTON_MASK
=
tmpMask
;
}
/**
...
...
@@ -156,6 +139,28 @@ public class Robot {
disposer
=
new
RobotDisposer
(
peer
);
sun
.
java2d
.
Disposer
.
addRecord
(
anchor
,
disposer
);
}
initLegalButtonMask
();
}
private
static
synchronized
void
initLegalButtonMask
()
{
if
(
LEGAL_BUTTON_MASK
!=
0
)
return
;
int
tmpMask
=
0
;
if
(
Toolkit
.
getDefaultToolkit
().
areExtraMouseButtonsEnabled
()){
if
(
Toolkit
.
getDefaultToolkit
()
instanceof
SunToolkit
)
{
final
int
buttonsNumber
=
((
SunToolkit
)(
Toolkit
.
getDefaultToolkit
())).
getNumberOfButtons
();
for
(
int
i
=
0
;
i
<
buttonsNumber
;
i
++){
tmpMask
|=
InputEvent
.
getMaskForButton
(
i
+
1
);
}
}
}
tmpMask
|=
InputEvent
.
BUTTON1_MASK
|
InputEvent
.
BUTTON2_MASK
|
InputEvent
.
BUTTON3_MASK
|
InputEvent
.
BUTTON1_DOWN_MASK
|
InputEvent
.
BUTTON2_DOWN_MASK
|
InputEvent
.
BUTTON3_DOWN_MASK
;
LEGAL_BUTTON_MASK
=
tmpMask
;
}
/* determine if the security policy allows Robot's to be created */
...
...
src/share/classes/java/awt/TrayIcon.java
浏览文件 @
9f4ed0d7
...
...
@@ -143,6 +143,9 @@ public class TrayIcon {
*/
public
TrayIcon
(
Image
image
)
{
this
();
if
(
image
==
null
)
{
throw
new
IllegalArgumentException
(
"creating TrayIcon with null Image"
);
}
setImage
(
image
);
}
...
...
src/share/classes/java/awt/Window.java
浏览文件 @
9f4ed0d7
...
...
@@ -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
...
...
@@ -3597,7 +3599,7 @@ public class Window extends Container implements Accessible {
return
;
}
int
oldAlpha
=
oldBg
!=
null
?
oldBg
.
getAlpha
()
:
255
;
int
alpha
=
bgColor
.
getAlpha
()
;
int
alpha
=
bgColor
!=
null
?
bgColor
.
getAlpha
()
:
255
;
if
((
oldAlpha
==
255
)
&&
(
alpha
<
255
))
{
// non-opaque window
GraphicsConfiguration
gc
=
getGraphicsConfiguration
();
GraphicsDevice
gd
=
gc
.
getDevice
();
...
...
@@ -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
浏览文件 @
9f4ed0d7
...
...
@@ -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
浏览文件 @
9f4ed0d7
...
...
@@ -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
浏览文件 @
9f4ed0d7
...
...
@@ -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
浏览文件 @
9f4ed0d7
...
...
@@ -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/solaris/classes/sun/awt/X11/XBaseWindow.java
浏览文件 @
9f4ed0d7
...
...
@@ -1000,10 +1000,7 @@ public class XBaseWindow {
int
buttonState
=
0
;
final
int
buttonsNumber
=
((
SunToolkit
)(
Toolkit
.
getDefaultToolkit
())).
getNumberOfButtons
();
for
(
int
i
=
0
;
i
<
buttonsNumber
;
i
++){
// A bug in WM implementation: extra buttons doesn't have state!=0 as they should on Release message.
if
((
i
!=
4
)
&&
(
i
!=
5
)){
buttonState
|=
(
xbe
.
get_state
()
&
XConstants
.
buttonsMask
[
i
]);
}
buttonState
|=
(
xbe
.
get_state
()
&
XConstants
.
buttonsMask
[
i
]);
}
switch
(
xev
.
get_type
())
{
case
XConstants
.
ButtonPress
:
...
...
src/windows/classes/sun/awt/windows/WWindowPeer.java
浏览文件 @
9f4ed0d7
...
...
@@ -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
());
}
}
...
...
test/java/awt/Robot/CtorTest/CtorTest.java
0 → 100644
浏览文件 @
9f4ed0d7
/*
* Copyright (c) 2009 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
/*
@test
@bug 6855323
@summary Robot(GraphicsDevice) constructor initializes LEGAL_BUTTON_MASK variable improperly
@author Dmitry Cherepanov area=awt.robot
@run main CtorTest
*/
/**
* CtorRobot.java
*
* summary: creates Robot using one parameter constructor
*/
import
java.awt.*
;
import
java.awt.event.*
;
import
sun.awt.SunToolkit
;
public
class
CtorTest
{
public
static
void
main
(
String
[]
s
)
throws
Exception
{
// one parameter constructor
GraphicsDevice
graphicsDevice
=
GraphicsEnvironment
.
getLocalGraphicsEnvironment
().
getDefaultScreenDevice
();
Robot
robot
=
new
Robot
(
graphicsDevice
);
clickOnFrame
(
robot
);
}
// generate mouse events
private
static
void
clickOnFrame
(
Robot
robot
)
{
Frame
frame
=
new
Frame
();
frame
.
setBounds
(
100
,
100
,
100
,
100
);
frame
.
setVisible
(
true
);
((
SunToolkit
)
Toolkit
.
getDefaultToolkit
()).
realSync
();
// click in the middle of the frame
robot
.
mouseMove
(
150
,
150
);
robot
.
delay
(
50
);
robot
.
mousePress
(
InputEvent
.
BUTTON1_MASK
);
robot
.
delay
(
50
);
robot
.
mouseRelease
(
InputEvent
.
BUTTON1_MASK
);
((
SunToolkit
)
Toolkit
.
getDefaultToolkit
()).
realSync
();
}
}
test/java/awt/TrayIcon/CtorTest/CtorTest.java
0 → 100644
浏览文件 @
9f4ed0d7
/*
* Copyright (c) 2009 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
/*
@test
@bug 6759726
@summary TrayIcon constructor throws NPE instead of documented IAE
@author Dmitry Cherepanov area=awt.tray
@run main CtorTest
*/
/**
* CtorTest.java
*
* summary: TrayIcon ctor throws IAE if image is null
*/
import
java.awt.*
;
public
class
CtorTest
{
public
static
void
main
(
String
[]
s
)
{
boolean
isSupported
=
SystemTray
.
isSupported
();
if
(
isSupported
)
{
try
{
TrayIcon
tray
=
new
TrayIcon
(
null
);
}
catch
(
IllegalArgumentException
e
)
{
// ctor should throw IAE
}
}
}
}
test/java/awt/Window/OwnedWindowsLeak/OwnedWindowsLeak.java
浏览文件 @
9f4ed0d7
...
...
@@ -65,6 +65,7 @@ public class OwnedWindowsLeak
break
;
}
}
garbage
=
null
;
// Third, make sure all the weak references are null
for
(
WeakReference
<
Window
>
ref
:
children
)
...
...
test/java/awt/Window/SetBackgroundNPE/SetBackgroundNPE.java
0 → 100644
浏览文件 @
9f4ed0d7
/*
* Copyright 2009 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
/*
@test
@bug 6853916
@summary Window.setBackground() should not throw NPE
@author anthony.petrov@sun.com: area=awt.toplevel
@run main SetBackgroundNPE
*/
import
java.awt.Window
;
public
class
SetBackgroundNPE
{
public
static
void
main
(
String
args
[])
{
new
Window
(
null
).
setBackground
(
null
);
}
}
test/java/awt/event/MouseWheelEvent/DisabledComponent/DisabledComponent.java
0 → 100644
浏览文件 @
9f4ed0d7
/*
* Copyright (c) 2009 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
/*
@test
@bug 6847958
@library ../../../regtesthelpers
@summary MouseWheel event is getting triggered for the disabled Textarea in jdk7 b60 pit build.
@author Dmitry Cherepanov: area=awt.event
@build Util
@run main DisabledComponent
*/
/**
* DisabledComponent.java
*
* summary: Tests that wheel events aren't coming on disabled component
*/
import
java.awt.*
;
import
java.awt.event.*
;
import
sun.awt.SunToolkit
;
import
test.java.awt.regtesthelpers.Util
;
public
class
DisabledComponent
{
private
static
volatile
boolean
passed
=
true
;
public
static
void
main
(
String
[]
s
)
throws
Exception
{
Frame
frame
=
new
Frame
();
frame
.
setBounds
(
100
,
100
,
400
,
400
);
frame
.
setLayout
(
new
FlowLayout
());
TextArea
textArea
=
new
TextArea
(
"TextArea"
,
6
,
15
);
frame
.
add
(
textArea
);
List
list
=
new
List
(
3
);
list
.
add
(
"1"
);
list
.
add
(
"2"
);
list
.
add
(
"3"
);
frame
.
add
(
list
);
MouseWheelListener
listener
=
new
MouseWheelListener
(){
@Override
public
void
mouseWheelMoved
(
MouseWheelEvent
mwe
){
System
.
err
.
println
(
mwe
);
passed
=
false
;
}
};
list
.
addMouseWheelListener
(
listener
);
textArea
.
addMouseWheelListener
(
listener
);
frame
.
setVisible
(
true
);
((
SunToolkit
)
Toolkit
.
getDefaultToolkit
()).
realSync
();
Robot
robot
=
new
Robot
();
// point and wheel on the list
Util
.
pointOnComp
(
list
,
robot
);
((
SunToolkit
)
Toolkit
.
getDefaultToolkit
()).
realSync
();
robot
.
mouseWheel
(
2
);
((
SunToolkit
)
Toolkit
.
getDefaultToolkit
()).
realSync
();
// disable the text area
System
.
err
.
println
(
" disable text area "
);
textArea
.
setEnabled
(
false
);
passed
=
true
;
// point and wheel on the text area
Util
.
pointOnComp
(
textArea
,
robot
);
((
SunToolkit
)
Toolkit
.
getDefaultToolkit
()).
realSync
();
robot
.
mouseWheel
(
2
);
((
SunToolkit
)
Toolkit
.
getDefaultToolkit
()).
realSync
();
if
(!
passed
)
{
throw
new
RuntimeException
(
" wrong wheel events "
);
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录