Q2:ボタンの色枠(フォーカス?)の解除方法について
Q2-1:
ボタンを押すと現在のフレーム(フレーム1)を閉じて、新しいフレーム(フレーム2)を表示するという処理を実装しています。しかし再びフレーム1を表示した場合、以前押したボタンの縁が黄色で囲われたままになっています。これを回避し、フレーム1を表示した時点でボタンの枠色を初期状態に戻したいです。ボタンメソッドの中でsetter系のそれらしいものを探してみましたが、見つかりませんでした。どうすればよいでしょうか?
関連ファイル:button.mzax
(※このファイルは、ZIP形式に圧縮してあります。)
A2-1:
ボタンの縁の色はJavaのJButtonクラスの仕様で、画面のテーマをWindows XPとしているとき、マウスポインタがボタンの上に載るときに色が変わり、ボタンから出るときに色が戻るようです。画面のテーマをWindowsクラシックに設定しているときには、色の変化は起こりません。
頂いたアプリケーションの場合、フレームを閉じた時点ではマウスポインタがボタン上にありますのでそのときの色が保持されます。再表示の際には、マウスポインタがボタン上から出るという動きをしたわけではないので、元の色がそのまま表示されることになります。ちなみに、再表示後、ボタンの上をマウスポインタが通過すると、色は元に戻ります。なお、この現象はJRE
1.6では発生せず、再表示の時点で色は元に戻るようです。
前置きが長くなりましたが、色を初期状態に戻すためには、表示前にボタンの押下可否属性を一旦falseに設定します。その後、trueに設定しなおせば、表示色は初期状態になります。アプリケーションを掲載致しましたので、ご確認ください。
関連ファイル:button-A.mzax
(※このファイルは、ZIP形式に圧縮してあります。)