public class HogeButton extends JButton {
/**
* テキスト付きのボタンを作成します。
* <p>
*
* @param text ボタンのテキスト
*/
public HogeButton(String text){
super(text);
addFocusListener(new HogeButtonFocusListener());
}
/**
* フォーカスリスナーです。<br>
* フォーカスロスト時にJRootPane#setDefaultButton()にnullを設定して
* デフォルトボタンを破棄します。
*/
protected class HogeButtonFocusListener implements FocusListener {
/**
* JRootPaneからデフォルトボタンを破棄します。
* <p>
*
* @param ev FocusEventオブジェクト
*/
public void focusLost(FocusEvent ev){
JRootPane root = getRootPane();
if(root != null) {
root.setDefaultButton(null); // <---ここ
}
}
/**
* 何もしません。
*/
public void focusGained(FocusEvent ev){
}
}
}
|