Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
4919e75a
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,发现更多精彩内容 >>
提交
4919e75a
编写于
9月 07, 2009
作者:
R
rupashka
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6589634: Unable to view focus on "Up one level", "create new folder" etc. of JFileChooser Dialog
Reviewed-by: peterz, loneid
上级
0d06dbab
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
156 addition
and
236 deletion
+156
-236
src/share/classes/com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java
...com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java
+156
-236
未找到文件。
src/share/classes/com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java
浏览文件 @
4919e75a
/*
* Copyright 1997-200
8
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1997-200
9
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
...
...
@@ -43,7 +43,6 @@ import java.security.AccessController;
import
java.security.PrivilegedAction
;
import
sun.awt.shell.ShellFolder
;
import
sun.awt.OSInfo
;
import
sun.swing.*
;
import
javax.accessibility.*
;
...
...
@@ -58,8 +57,6 @@ public class WindowsFileChooserUI extends BasicFileChooserUI {
// The following are private because the implementation of the
// Windows FileChooser L&F is not complete yet.
private
static
final
OSInfo
.
WindowsVersion
OS_VERSION
=
OSInfo
.
getWindowsVersion
();
private
JPanel
centerPanel
;
private
JLabel
lookInLabel
;
...
...
@@ -118,18 +115,9 @@ public class WindowsFileChooserUI extends BasicFileChooserUI {
private
String
upFolderToolTipText
=
null
;
private
String
upFolderAccessibleName
=
null
;
private
String
homeFolderToolTipText
=
null
;
private
String
homeFolderAccessibleName
=
null
;
private
String
newFolderToolTipText
=
null
;
private
String
newFolderAccessibleName
=
null
;
private
String
listViewButtonToolTipText
=
null
;
private
String
listViewButtonAccessibleName
=
null
;
private
String
detailsViewButtonToolTipText
=
null
;
private
String
detailsViewButtonAccessibleName
=
null
;
private
String
viewMenuButtonToolTipText
=
null
;
private
String
viewMenuButtonAccessibleName
=
null
;
...
...
@@ -231,9 +219,7 @@ public class WindowsFileChooserUI extends BasicFileChooserUI {
// Directory manipulation buttons
JToolBar
topPanel
=
new
JToolBar
();
topPanel
.
setFloatable
(
false
);
if
(
OS_VERSION
.
compareTo
(
OSInfo
.
WINDOWS_ME
)
>=
0
)
{
topPanel
.
putClientProperty
(
"JToolBar.isRollover"
,
Boolean
.
TRUE
);
}
topPanel
.
putClientProperty
(
"JToolBar.isRollover"
,
Boolean
.
TRUE
);
// Add the top panel to the fileChooser
fc
.
add
(
topPanel
,
BorderLayout
.
NORTH
);
...
...
@@ -287,218 +273,103 @@ public class WindowsFileChooserUI extends BasicFileChooserUI {
topPanel
.
add
(
Box
.
createRigidArea
(
hstrut10
));
// Up Button
JButton
upFolderButton
=
new
JButton
(
getChangeToParentDirectoryAction
());
upFolderButton
.
setText
(
null
);
upFolderButton
.
setIcon
(
upFolderIcon
);
upFolderButton
.
setToolTipText
(
upFolderToolTipText
);
upFolderButton
.
putClientProperty
(
AccessibleContext
.
ACCESSIBLE_NAME_PROPERTY
,
upFolderAccessibleName
);
upFolderButton
.
putClientProperty
(
WindowsLookAndFeel
.
HI_RES_DISABLED_ICON_CLIENT_KEY
,
Boolean
.
TRUE
);
upFolderButton
.
setAlignmentX
(
JComponent
.
LEFT_ALIGNMENT
);
upFolderButton
.
setAlignmentY
(
JComponent
.
CENTER_ALIGNMENT
);
upFolderButton
.
setMargin
(
shrinkwrap
);
upFolderButton
.
setFocusPainted
(
false
);
JButton
upFolderButton
=
createToolButton
(
getChangeToParentDirectoryAction
(),
upFolderIcon
,
upFolderToolTipText
,
upFolderAccessibleName
);
topPanel
.
add
(
upFolderButton
);
if
(
OS_VERSION
.
compareTo
(
OSInfo
.
WINDOWS_ME
)
<
0
)
{
topPanel
.
add
(
Box
.
createRigidArea
(
hstrut10
));
}
JButton
b
;
if
(
OS_VERSION
==
OSInfo
.
WINDOWS_98
)
{
// Desktop Button
File
homeDir
=
fsv
.
getHomeDirectory
();
String
toolTipText
=
homeFolderToolTipText
;
if
(
fsv
.
isRoot
(
homeDir
))
{
toolTipText
=
getFileView
(
fc
).
getName
(
homeDir
);
// Probably "Desktop".
}
b
=
new
JButton
(
getFileView
(
fc
).
getIcon
(
homeDir
));
b
.
setToolTipText
(
toolTipText
);
b
.
putClientProperty
(
AccessibleContext
.
ACCESSIBLE_NAME_PROPERTY
,
toolTipText
);
b
.
setAlignmentX
(
JComponent
.
LEFT_ALIGNMENT
);
b
.
setAlignmentY
(
JComponent
.
CENTER_ALIGNMENT
);
b
.
setMargin
(
shrinkwrap
);
b
.
setFocusPainted
(
false
);
b
.
addActionListener
(
getGoHomeAction
());
topPanel
.
add
(
b
);
topPanel
.
add
(
Box
.
createRigidArea
(
hstrut10
));
}
// New Directory Button
if
(!
UIManager
.
getBoolean
(
"FileChooser.readOnly"
))
{
b
=
new
JButton
(
filePane
.
getNewFolderAction
());
b
.
setText
(
null
);
b
.
setIcon
(
newFolderIcon
);
b
.
setToolTipText
(
newFolderToolTipText
);
b
.
putClientProperty
(
AccessibleContext
.
ACCESSIBLE_NAME_PROPERTY
,
newFolderAccessibleName
);
b
.
putClientProperty
(
WindowsLookAndFeel
.
HI_RES_DISABLED_ICON_CLIENT_KEY
,
Boolean
.
TRUE
);
b
.
setAlignmentX
(
JComponent
.
LEFT_ALIGNMENT
);
b
.
setAlignmentY
(
JComponent
.
CENTER_ALIGNMENT
);
b
.
setMargin
(
shrinkwrap
);
b
.
setFocusPainted
(
false
);
topPanel
.
add
(
b
);
JButton
newFolderButton
=
createToolButton
(
filePane
.
getNewFolderAction
(),
newFolderIcon
,
newFolderToolTipText
,
newFolderAccessibleName
);
topPanel
.
add
(
newFolderButton
);
}
if
(
OS_VERSION
.
compareTo
(
OSInfo
.
WINDOWS_ME
)
<
0
)
{
topPanel
.
add
(
Box
.
createRigidArea
(
hstrut10
));
// View button group
ButtonGroup
viewButtonGroup
=
new
ButtonGroup
();
// List Button
final
JToggleButton
listViewButton
=
new
JToggleButton
(
listViewIcon
);
listViewButton
.
setToolTipText
(
listViewButtonToolTipText
);
listViewButton
.
putClientProperty
(
AccessibleContext
.
ACCESSIBLE_NAME_PROPERTY
,
listViewButtonAccessibleName
);
listViewButton
.
putClientProperty
(
WindowsLookAndFeel
.
HI_RES_DISABLED_ICON_CLIENT_KEY
,
Boolean
.
TRUE
);
listViewButton
.
setFocusPainted
(
false
);
listViewButton
.
setSelected
(
true
);
listViewButton
.
setAlignmentX
(
JComponent
.
LEFT_ALIGNMENT
);
listViewButton
.
setAlignmentY
(
JComponent
.
CENTER_ALIGNMENT
);
listViewButton
.
setMargin
(
shrinkwrap
);
listViewButton
.
addActionListener
(
filePane
.
getViewTypeAction
(
FilePane
.
VIEWTYPE_LIST
));
topPanel
.
add
(
listViewButton
);
viewButtonGroup
.
add
(
listViewButton
);
// Details Button
final
JToggleButton
detailsViewButton
=
new
JToggleButton
(
detailsViewIcon
);
detailsViewButton
.
setToolTipText
(
detailsViewButtonToolTipText
);
detailsViewButton
.
putClientProperty
(
AccessibleContext
.
ACCESSIBLE_NAME_PROPERTY
,
detailsViewButtonAccessibleName
);
detailsViewButton
.
putClientProperty
(
WindowsLookAndFeel
.
HI_RES_DISABLED_ICON_CLIENT_KEY
,
Boolean
.
TRUE
);
detailsViewButton
.
setFocusPainted
(
false
);
detailsViewButton
.
setAlignmentX
(
JComponent
.
LEFT_ALIGNMENT
);
detailsViewButton
.
setAlignmentY
(
JComponent
.
CENTER_ALIGNMENT
);
detailsViewButton
.
setMargin
(
shrinkwrap
);
detailsViewButton
.
addActionListener
(
filePane
.
getViewTypeAction
(
FilePane
.
VIEWTYPE_DETAILS
));
topPanel
.
add
(
detailsViewButton
);
viewButtonGroup
.
add
(
detailsViewButton
);
topPanel
.
add
(
Box
.
createRigidArea
(
new
Dimension
(
60
,
0
)));
filePane
.
addPropertyChangeListener
(
new
PropertyChangeListener
()
{
public
void
propertyChange
(
PropertyChangeEvent
e
)
{
if
(
"viewType"
.
equals
(
e
.
getPropertyName
()))
{
int
viewType
=
filePane
.
getViewType
();
switch
(
viewType
)
{
case
FilePane
.
VIEWTYPE_LIST
:
listViewButton
.
setSelected
(
true
);
break
;
case
FilePane
.
VIEWTYPE_DETAILS
:
detailsViewButton
.
setSelected
(
true
);
break
;
}
}
// View button group
ButtonGroup
viewButtonGroup
=
new
ButtonGroup
();
// Popup Menu
final
JPopupMenu
viewTypePopupMenu
=
new
JPopupMenu
();
final
JRadioButtonMenuItem
listViewMenuItem
=
new
JRadioButtonMenuItem
(
filePane
.
getViewTypeAction
(
FilePane
.
VIEWTYPE_LIST
));
listViewMenuItem
.
setSelected
(
filePane
.
getViewType
()
==
FilePane
.
VIEWTYPE_LIST
);
viewTypePopupMenu
.
add
(
listViewMenuItem
);
viewButtonGroup
.
add
(
listViewMenuItem
);
final
JRadioButtonMenuItem
detailsViewMenuItem
=
new
JRadioButtonMenuItem
(
filePane
.
getViewTypeAction
(
FilePane
.
VIEWTYPE_DETAILS
));
detailsViewMenuItem
.
setSelected
(
filePane
.
getViewType
()
==
FilePane
.
VIEWTYPE_DETAILS
);
viewTypePopupMenu
.
add
(
detailsViewMenuItem
);
viewButtonGroup
.
add
(
detailsViewMenuItem
);
// Create icon for viewMenuButton
BufferedImage
image
=
new
BufferedImage
(
viewMenuIcon
.
getIconWidth
()
+
7
,
viewMenuIcon
.
getIconHeight
(),
BufferedImage
.
TYPE_INT_ARGB
);
Graphics
graphics
=
image
.
getGraphics
();
viewMenuIcon
.
paintIcon
(
filePane
,
graphics
,
0
,
0
);
int
x
=
image
.
getWidth
()
-
5
;
int
y
=
image
.
getHeight
()
/
2
-
1
;
graphics
.
setColor
(
Color
.
BLACK
);
graphics
.
fillPolygon
(
new
int
[]{
x
,
x
+
5
,
x
+
2
},
new
int
[]{
y
,
y
,
y
+
3
},
3
);
// Details Button
final
JButton
viewMenuButton
=
createToolButton
(
null
,
new
ImageIcon
(
image
),
viewMenuButtonToolTipText
,
viewMenuButtonAccessibleName
);
viewMenuButton
.
addMouseListener
(
new
MouseAdapter
()
{
public
void
mousePressed
(
MouseEvent
e
)
{
if
(
SwingUtilities
.
isLeftMouseButton
(
e
)
&&
!
viewMenuButton
.
isSelected
())
{
viewMenuButton
.
setSelected
(
true
);
viewTypePopupMenu
.
show
(
viewMenuButton
,
0
,
viewMenuButton
.
getHeight
());
}
});
}
else
{
// After Windows Me
// View button group
ButtonGroup
viewButtonGroup
=
new
ButtonGroup
();
// Popup Menu
final
JPopupMenu
viewTypePopupMenu
=
new
JPopupMenu
();
final
JRadioButtonMenuItem
listViewMenuItem
=
new
JRadioButtonMenuItem
(
filePane
.
getViewTypeAction
(
FilePane
.
VIEWTYPE_LIST
));
listViewMenuItem
.
setSelected
(
filePane
.
getViewType
()
==
FilePane
.
VIEWTYPE_LIST
);
viewTypePopupMenu
.
add
(
listViewMenuItem
);
viewButtonGroup
.
add
(
listViewMenuItem
);
final
JRadioButtonMenuItem
detailsViewMenuItem
=
new
JRadioButtonMenuItem
(
filePane
.
getViewTypeAction
(
FilePane
.
VIEWTYPE_DETAILS
));
detailsViewMenuItem
.
setSelected
(
filePane
.
getViewType
()
==
FilePane
.
VIEWTYPE_DETAILS
);
viewTypePopupMenu
.
add
(
detailsViewMenuItem
);
viewButtonGroup
.
add
(
detailsViewMenuItem
);
// Create icon for viewMenuButton
BufferedImage
image
=
new
BufferedImage
(
viewMenuIcon
.
getIconWidth
()
+
7
,
viewMenuIcon
.
getIconHeight
(),
BufferedImage
.
TYPE_INT_ARGB
);
Graphics
graphics
=
image
.
getGraphics
();
viewMenuIcon
.
paintIcon
(
filePane
,
graphics
,
0
,
0
);
int
x
=
image
.
getWidth
()
-
5
;
int
y
=
image
.
getHeight
()
/
2
-
1
;
graphics
.
setColor
(
Color
.
BLACK
);
graphics
.
fillPolygon
(
new
int
[]{
x
,
x
+
5
,
x
+
2
},
new
int
[]{
y
,
y
,
y
+
3
},
3
);
// Details Button
final
JButton
viewMenuButton
=
new
JButton
(
new
ImageIcon
(
image
));
viewMenuButton
.
setToolTipText
(
viewMenuButtonToolTipText
);
viewMenuButton
.
putClientProperty
(
AccessibleContext
.
ACCESSIBLE_NAME_PROPERTY
,
viewMenuButtonAccessibleName
);
viewMenuButton
.
putClientProperty
(
WindowsLookAndFeel
.
HI_RES_DISABLED_ICON_CLIENT_KEY
,
Boolean
.
TRUE
);
viewMenuButton
.
setFocusable
(
false
);
viewMenuButton
.
setAlignmentX
(
JComponent
.
LEFT_ALIGNMENT
);
viewMenuButton
.
setAlignmentY
(
JComponent
.
CENTER_ALIGNMENT
);
viewMenuButton
.
setMargin
(
shrinkwrap
);
viewMenuButton
.
setModel
(
new
DefaultButtonModel
()
{
public
void
setPressed
(
boolean
b
)
{
}
});
viewMenuButton
.
addKeyListener
(
new
KeyAdapter
()
{
public
void
keyPressed
(
KeyEvent
e
)
{
// Forbid keyboard actions if the button is not in rollover state
if
(
e
.
getKeyCode
()
==
KeyEvent
.
VK_SPACE
&&
viewMenuButton
.
getModel
().
isRollover
())
{
viewMenuButton
.
setSelected
(
true
);
viewTypePopupMenu
.
show
(
viewMenuButton
,
0
,
viewMenuButton
.
getHeight
());
}
}
});
viewTypePopupMenu
.
addPopupMenuListener
(
new
PopupMenuListener
()
{
public
void
popupMenuWillBecomeVisible
(
PopupMenuEvent
e
)
{
}
public
void
setArmed
(
boolean
b
)
{
}
public
void
popupMenuWillBecomeInvisible
(
PopupMenuEvent
e
)
{
SwingUtilities
.
invokeLater
(
new
Runnable
()
{
public
void
run
()
{
viewMenuButton
.
setSelected
(
false
);
}
});
}
public
void
setSelected
(
boolean
b
)
{
super
.
setSelected
(
b
);
public
void
popupMenuCanceled
(
PopupMenuEvent
e
)
{
}
});
if
(
b
)
{
stateMask
|=
PRESSED
|
ARMED
;
}
else
{
stateMask
&=
~(
PRESSED
|
ARMED
);
}
}
});
viewMenuButton
.
addMouseListener
(
new
MouseAdapter
()
{
public
void
mousePressed
(
MouseEvent
e
)
{
if
(
SwingUtilities
.
isLeftMouseButton
(
e
))
{
viewMenuButton
.
setSelected
(!
viewMenuButton
.
isSelected
());
if
(
viewMenuButton
.
isSelected
())
{
viewTypePopupMenu
.
show
(
viewMenuButton
,
0
,
viewMenuButton
.
getHeight
());
}
}
}
});
viewTypePopupMenu
.
addPopupMenuListener
(
new
PopupMenuListener
()
{
public
void
popupMenuWillBecomeVisible
(
PopupMenuEvent
e
)
{
}
topPanel
.
add
(
viewMenuButton
);
public
void
popupMenuWillBecomeInvisible
(
PopupMenuEvent
e
)
{
SwingUtilities
.
invokeLater
(
new
Runnable
()
{
public
void
run
()
{
viewMenuButton
.
setSelected
(
false
);
}
});
}
topPanel
.
add
(
Box
.
createRigidArea
(
new
Dimension
(
80
,
0
)));
public
void
popupMenuCanceled
(
PopupMenuEvent
e
)
{
}
});
topPanel
.
add
(
viewMenuButton
);
topPanel
.
add
(
Box
.
createRigidArea
(
new
Dimension
(
80
,
0
)));
filePane
.
addPropertyChangeListener
(
new
PropertyChangeListener
()
{
public
void
propertyChange
(
PropertyChangeEvent
e
)
{
if
(
"viewType"
.
equals
(
e
.
getPropertyName
()))
{
switch
(
filePane
.
getViewType
())
{
case
FilePane
.
VIEWTYPE_LIST
:
listViewMenuItem
.
setSelected
(
true
);
break
;
case
FilePane
.
VIEWTYPE_DETAILS
:
detailsViewMenuItem
.
setSelected
(
true
);
break
;
}
filePane
.
addPropertyChangeListener
(
new
PropertyChangeListener
()
{
public
void
propertyChange
(
PropertyChangeEvent
e
)
{
if
(
"viewType"
.
equals
(
e
.
getPropertyName
()))
{
switch
(
filePane
.
getViewType
())
{
case
FilePane
.
VIEWTYPE_LIST
:
listViewMenuItem
.
setSelected
(
true
);
break
;
case
FilePane
.
VIEWTYPE_DETAILS
:
detailsViewMenuItem
.
setSelected
(
true
);
break
;
}
}
}
);
}
}
}
);
// ************************************** //
// ******* Add the directory pane ******* //
...
...
@@ -622,19 +493,18 @@ public class WindowsFileChooserUI extends BasicFileChooserUI {
// Decide whether to use the ShellFolder class to populate shortcut
// panel and combobox.
JFileChooser
fc
=
getFileChooser
();
if
(
OS_VERSION
.
compareTo
(
OSInfo
.
WINDOWS_ME
)
>=
0
)
{
if
(
FilePane
.
usesShellFolder
(
fc
))
{
if
(
placesBar
==
null
&&
!
UIManager
.
getBoolean
(
"FileChooser.noPlacesBar"
))
{
placesBar
=
new
WindowsPlacesBar
(
fc
,
XPStyle
.
getXP
()
!=
null
);
fc
.
add
(
placesBar
,
BorderLayout
.
BEFORE_LINE_BEGINS
);
fc
.
addPropertyChangeListener
(
placesBar
);
}
}
else
{
if
(
placesBar
!=
null
)
{
fc
.
remove
(
placesBar
);
fc
.
removePropertyChangeListener
(
placesBar
);
placesBar
=
null
;
}
if
(
FilePane
.
usesShellFolder
(
fc
))
{
if
(
placesBar
==
null
&&
!
UIManager
.
getBoolean
(
"FileChooser.noPlacesBar"
))
{
placesBar
=
new
WindowsPlacesBar
(
fc
,
XPStyle
.
getXP
()
!=
null
);
fc
.
add
(
placesBar
,
BorderLayout
.
BEFORE_LINE_BEGINS
);
fc
.
addPropertyChangeListener
(
placesBar
);
}
}
else
{
if
(
placesBar
!=
null
)
{
fc
.
remove
(
placesBar
);
fc
.
removePropertyChangeListener
(
placesBar
);
placesBar
=
null
;
}
}
}
...
...
@@ -673,18 +543,9 @@ public class WindowsFileChooserUI extends BasicFileChooserUI {
upFolderToolTipText
=
UIManager
.
getString
(
"FileChooser.upFolderToolTipText"
,
l
);
upFolderAccessibleName
=
UIManager
.
getString
(
"FileChooser.upFolderAccessibleName"
,
l
);
homeFolderToolTipText
=
UIManager
.
getString
(
"FileChooser.homeFolderToolTipText"
,
l
);
homeFolderAccessibleName
=
UIManager
.
getString
(
"FileChooser.homeFolderAccessibleName"
,
l
);
newFolderToolTipText
=
UIManager
.
getString
(
"FileChooser.newFolderToolTipText"
,
l
);
newFolderAccessibleName
=
UIManager
.
getString
(
"FileChooser.newFolderAccessibleName"
,
l
);
listViewButtonToolTipText
=
UIManager
.
getString
(
"FileChooser.listViewButtonToolTipText"
,
l
);
listViewButtonAccessibleName
=
UIManager
.
getString
(
"FileChooser.listViewButtonAccessibleName"
,
l
);
detailsViewButtonToolTipText
=
UIManager
.
getString
(
"FileChooser.detailsViewButtonToolTipText"
,
l
);
detailsViewButtonAccessibleName
=
UIManager
.
getString
(
"FileChooser.detailsViewButtonAccessibleName"
,
l
);
viewMenuButtonToolTipText
=
UIManager
.
getString
(
"FileChooser.viewMenuButtonToolTipText"
,
l
);
viewMenuButtonAccessibleName
=
UIManager
.
getString
(
"FileChooser.viewMenuButtonAccessibleName"
,
l
);
}
...
...
@@ -1052,6 +913,65 @@ public class WindowsFileChooserUI extends BasicFileChooserUI {
return
new
DirectoryComboBoxRenderer
();
}
private
static
JButton
createToolButton
(
Action
a
,
Icon
defaultIcon
,
String
toolTipText
,
String
accessibleName
)
{
final
JButton
result
=
new
JButton
(
a
);
result
.
setText
(
null
);
result
.
setIcon
(
defaultIcon
);
result
.
setToolTipText
(
toolTipText
);
result
.
setRequestFocusEnabled
(
false
);
result
.
putClientProperty
(
AccessibleContext
.
ACCESSIBLE_NAME_PROPERTY
,
accessibleName
);
result
.
putClientProperty
(
WindowsLookAndFeel
.
HI_RES_DISABLED_ICON_CLIENT_KEY
,
Boolean
.
TRUE
);
result
.
setAlignmentX
(
JComponent
.
LEFT_ALIGNMENT
);
result
.
setAlignmentY
(
JComponent
.
CENTER_ALIGNMENT
);
result
.
setMargin
(
shrinkwrap
);
result
.
setFocusPainted
(
false
);
result
.
setModel
(
new
DefaultButtonModel
()
{
public
void
setPressed
(
boolean
b
)
{
// Forbid keyboard actions if the button is not in rollover state
if
(!
b
||
isRollover
())
{
super
.
setPressed
(
b
);
}
}
public
void
setRollover
(
boolean
b
)
{
if
(
b
&&
!
isRollover
())
{
// Reset other buttons
for
(
Component
component
:
result
.
getParent
().
getComponents
())
{
if
(
component
instanceof
JButton
&&
component
!=
result
)
{
((
JButton
)
component
).
getModel
().
setRollover
(
false
);
}
}
}
super
.
setRollover
(
b
);
}
public
void
setSelected
(
boolean
b
)
{
super
.
setSelected
(
b
);
if
(
b
)
{
stateMask
|=
PRESSED
|
ARMED
;
}
else
{
stateMask
&=
~(
PRESSED
|
ARMED
);
}
}
});
result
.
addFocusListener
(
new
FocusAdapter
()
{
public
void
focusGained
(
FocusEvent
e
)
{
result
.
getModel
().
setRollover
(
true
);
}
public
void
focusLost
(
FocusEvent
e
)
{
result
.
getModel
().
setRollover
(
false
);
}
});
return
result
;
}
//
// Renderer for DirectoryComboBox
//
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录