Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
4020268f
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看板
提交
4020268f
编写于
10月 11, 2013
作者:
P
pchelko
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8024329: [macosx] JRadioButtonMenuItem behaves like a checkbox when using the ScreenMenuBar
Reviewed-by: anthony, serb
上级
069bb731
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
20 addition
and
4 deletion
+20
-4
src/macosx/classes/com/apple/laf/ScreenMenuItemCheckbox.java
src/macosx/classes/com/apple/laf/ScreenMenuItemCheckbox.java
+20
-4
未找到文件。
src/macosx/classes/com/apple/laf/ScreenMenuItemCheckbox.java
浏览文件 @
4020268f
...
...
@@ -93,9 +93,9 @@ final class ScreenMenuItemCheckbox extends CheckboxMenuItem implements ActionLis
}
if
(
fMenuItem
instanceof
JCheckBoxMenuItem
)
{
setState
(((
JCheckBoxMenuItem
)
fMenuItem
)
.
isSelected
());
forceSetState
(
fMenuItem
.
isSelected
());
}
else
{
s
etState
(
fMenuItem
.
getModel
().
isSelected
());
forceS
etState
(
fMenuItem
.
getModel
().
isSelected
());
}
}
...
...
@@ -196,10 +196,10 @@ final class ScreenMenuItemCheckbox extends CheckboxMenuItem implements ActionLis
switch
(
e
.
getStateChange
())
{
case
ItemEvent
.
SELECTED
:
s
etState
(
true
);
forceS
etState
(
true
);
break
;
case
ItemEvent
.
DESELECTED
:
s
etState
(
false
);
forceS
etState
(
false
);
break
;
}
}
...
...
@@ -210,4 +210,20 @@ final class ScreenMenuItemCheckbox extends CheckboxMenuItem implements ActionLis
((
CCheckboxMenuItem
)
peer
).
setIsIndeterminate
(
indeterminate
);
}
}
/*
* The CCheckboxMenuItem peer is calling setState unconditionally every time user clicks the menu
* However for Swing controls in the screen menu bar it is wrong - the state should be changed only
* in response to the ITEM_STATE_CHANGED event. So the setState is overridden to no-op and all the
* correct state changes are made with forceSetState
*/
@Override
public
synchronized
void
setState
(
boolean
b
)
{
// No Op
}
private
void
forceSetState
(
boolean
b
)
{
super
.
setState
(
b
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录