37 |
|
|
38 |
package javax.swing.plaf.basic; |
package javax.swing.plaf.basic; |
39 |
|
|
40 |
|
import java.awt.event.ActionEvent; |
41 |
import java.awt.event.FocusEvent; |
import java.awt.event.FocusEvent; |
42 |
import java.awt.event.FocusListener; |
import java.awt.event.FocusListener; |
43 |
import java.awt.event.InputEvent; |
import java.awt.event.InputEvent; |
47 |
import java.beans.PropertyChangeEvent; |
import java.beans.PropertyChangeEvent; |
48 |
import java.beans.PropertyChangeListener; |
import java.beans.PropertyChangeListener; |
49 |
|
|
50 |
|
import javax.swing.AbstractAction; |
51 |
import javax.swing.AbstractButton; |
import javax.swing.AbstractButton; |
52 |
import javax.swing.ButtonModel; |
import javax.swing.ButtonModel; |
53 |
import javax.swing.JComponent; |
import javax.swing.JComponent; |
66 |
} |
} |
67 |
public void focusGained(FocusEvent e) |
public void focusGained(FocusEvent e) |
68 |
{ |
{ |
69 |
|
if (e.getSource() instanceof AbstractButton) |
70 |
|
{ |
71 |
|
AbstractButton button = (AbstractButton) e.getSource(); |
72 |
|
if (button.isFocusPainted()) |
73 |
|
button.repaint(); |
74 |
|
} |
75 |
} |
} |
76 |
|
|
77 |
public void focusLost(FocusEvent e) |
public void focusLost(FocusEvent e) |
81 |
AbstractButton button = (AbstractButton) e.getSource(); |
AbstractButton button = (AbstractButton) e.getSource(); |
82 |
ButtonModel model = button.getModel(); |
ButtonModel model = button.getModel(); |
83 |
model.setArmed(false); |
model.setArmed(false); |
84 |
|
|
85 |
|
if (button.isFocusPainted()) |
86 |
|
button.repaint(); |
87 |
} |
} |
88 |
} |
} |
89 |
public void installKeyboardActions(JComponent c) |
public void installKeyboardActions(JComponent c) |
90 |
{ |
{ |
91 |
|
c.getActionMap().put("pressed", |
92 |
|
new AbstractAction() |
93 |
|
{ |
94 |
|
public void actionPerformed(ActionEvent e) |
95 |
|
{ |
96 |
|
AbstractButton button = (AbstractButton) e.getSource(); |
97 |
|
ButtonModel model = button.getModel(); |
98 |
|
// It is important that these transitions happen in this order. |
99 |
|
model.setArmed(true); |
100 |
|
model.setPressed(true); |
101 |
|
} |
102 |
|
}); |
103 |
|
|
104 |
|
c.getActionMap().put("released", |
105 |
|
new AbstractAction() |
106 |
|
{ |
107 |
|
public void actionPerformed(ActionEvent e) |
108 |
|
{ |
109 |
|
AbstractButton button = (AbstractButton) e.getSource(); |
110 |
|
ButtonModel model = button.getModel(); |
111 |
|
// It is important that these transitions happen in this order. |
112 |
|
model.setPressed(false); |
113 |
|
model.setArmed(false); |
114 |
|
} |
115 |
|
}); |
116 |
} |
} |
117 |
public void uninstallKeyboardActions(JComponent c) |
public void uninstallKeyboardActions(JComponent c) |
118 |
{ |
{ |
119 |
|
c.getActionMap().put("pressed", null); |
120 |
|
c.getActionMap().put("released", null); |
121 |
} |
} |
122 |
public void stateChanged(ChangeEvent e) |
public void stateChanged(ChangeEvent e) |
123 |
{ |
{ |