Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
e71db73c
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看板
提交
e71db73c
编写于
5月 01, 2014
作者:
A
asaha
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8036819: JAB: mneumonics not read for textboxes
Reviewed-by: alexsch Contributed-by: vivi.an@oracle.com
上级
71427dd6
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
143 addition
and
0 deletion
+143
-0
src/share/classes/javax/swing/JComponent.java
src/share/classes/javax/swing/JComponent.java
+11
-0
test/javax/swing/JTextField/8036819/bug8036819.java
test/javax/swing/JTextField/8036819/bug8036819.java
+132
-0
未找到文件。
src/share/classes/javax/swing/JComponent.java
浏览文件 @
e71db73c
...
...
@@ -3985,6 +3985,17 @@ public abstract class JComponent extends Container implements Serializable,
* @since 1.4
*/
public
AccessibleKeyBinding
getAccessibleKeyBinding
()
{
// Try to get the linked label's mnemonic if it exists
Object
o
=
getClientProperty
(
JLabel
.
LABELED_BY_PROPERTY
);
if
(
o
instanceof
Accessible
){
AccessibleContext
ac
=
((
Accessible
)
o
).
getAccessibleContext
();
if
(
ac
!=
null
){
AccessibleComponent
comp
=
ac
.
getAccessibleComponent
();
if
(!
(
comp
instanceof
AccessibleExtendedComponent
))
return
null
;
return
((
AccessibleExtendedComponent
)
comp
).
getAccessibleKeyBinding
();
}
}
return
null
;
}
}
// inner class AccessibleJComponent
...
...
test/javax/swing/JTextField/8036819/bug8036819.java
0 → 100644
浏览文件 @
e71db73c
/*
* Copyright (c) 2014, 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
* @library ../../regtesthelpers
* @build Util
* @bug 8036819
* @summary JAB: mnemonics not read for textboxes
* @author Vivi An
* @run main bug8036819
*/
import
javax.swing.*
;
import
javax.swing.event.*
;
import
java.awt.event.*
;
import
java.awt.*
;
import
sun.awt.SunToolkit
;
import
javax.accessibility.*
;
public
class
bug8036819
{
public
static
volatile
Boolean
passed
=
false
;
public
static
void
main
(
String
args
[])
throws
Throwable
{
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
createAndShowGUI
();
}
});
SunToolkit
toolkit
=
(
SunToolkit
)
Toolkit
.
getDefaultToolkit
();
toolkit
.
realSync
();
Robot
robo
=
new
Robot
();
robo
.
setAutoDelay
(
300
);
// Using mnemonic key to focus on the textfield
Util
.
hitMnemonics
(
robo
,
KeyEvent
.
VK_P
);
toolkit
.
realSync
();
if
(!
passed
){
throw
new
RuntimeException
(
"Test failed."
);
}
}
private
static
void
createAndShowGUI
()
{
JFrame
mainFrame
=
new
JFrame
(
"bug 8036819"
);
JLabel
usernameLabel
=
new
JLabel
(
"Username: "
);
JTextField
usernameField
=
new
JTextField
(
20
);
usernameLabel
.
setDisplayedMnemonic
(
KeyEvent
.
VK_U
);
usernameLabel
.
setLabelFor
(
usernameField
);
JLabel
pwdLabel
=
new
JLabel
(
"Password: "
);
JTextField
pwdField
=
new
JTextField
(
20
);
pwdLabel
.
setDisplayedMnemonic
(
KeyEvent
.
VK_P
);
pwdLabel
.
setLabelFor
(
pwdField
);
pwdField
.
addKeyListener
(
new
KeyListener
(){
@Override
public
void
keyPressed
(
KeyEvent
keyEvent
)
{
}
@Override
public
void
keyTyped
(
KeyEvent
keyEvent
)
{
}
@Override
public
void
keyReleased
(
KeyEvent
keyEvent
){
JComponent
comp
=
(
JComponent
)
pwdField
;
AccessibleContext
ac
=
comp
.
getAccessibleContext
();
AccessibleExtendedComponent
aec
=
(
AccessibleExtendedComponent
)
ac
.
getAccessibleComponent
();
AccessibleKeyBinding
akb
=
aec
.
getAccessibleKeyBinding
();
if
(
akb
!=
null
){
int
count
=
akb
.
getAccessibleKeyBindingCount
();
if
(
count
!=
1
){
passed
=
false
;
return
;
}
// there is 1 accessible key for the text field
System
.
out
.
println
(
"Retrieved AccessibleKeyBinding for textfield "
+
count
);
// the key code is KeyEvent.VK_P
Object
o
=
akb
.
getAccessibleKeyBinding
(
0
);
if
(
o
instanceof
KeyStroke
){
javax
.
swing
.
KeyStroke
key
=
(
javax
.
swing
.
KeyStroke
)
o
;
System
.
out
.
println
(
"keystroke is "
+
key
.
getKeyCode
());
if
(
key
.
getKeyCode
()
==
KeyEvent
.
VK_P
)
passed
=
true
;
}
}
}
}
);
mainFrame
.
getContentPane
().
add
(
usernameLabel
);
mainFrame
.
getContentPane
().
add
(
usernameField
);
mainFrame
.
getContentPane
().
add
(
pwdLabel
);
mainFrame
.
getContentPane
().
add
(
pwdField
);
mainFrame
.
setDefaultCloseOperation
(
JFrame
.
EXIT_ON_CLOSE
);
mainFrame
.
setLayout
(
new
FlowLayout
(
FlowLayout
.
LEFT
));
mainFrame
.
setSize
(
200
,
200
);
mainFrame
.
setLocation
(
200
,
200
);
mainFrame
.
setVisible
(
true
);
mainFrame
.
toFront
();
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录