高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先


テクニカルQ&A

Java 01 - AWT ボタンの模擬的クリック
(1998 年 12 月 7 日)


Q: プログラムを使って、あたかもユーザがクリックしたかのように java.awt.Buttonを動作させるにはどうすればいいですか。

A: 通常、デフォルトボタンをインプリメントして、Enter キーまたは Return キーが押されたときにデフォルトボタンの動作が実行されたことをフィードバックするときにこの処理が必要になります。その他の場合にも、ユーザインタフェースの観点からこの処理が重要な意味を持つことがあります。Macintosh Runtime for Java (MRJ) には、この動作があらかじめ組み込まれています。この動作を得るには、ターゲットボタンの System イベントキューの中にキー押下イベントを格納する必要があります。次のサンプルコードはキー押下イベントの格納を具体的に示しています。


import java.awt.Button;
 import java.awt.Toolkit;
 import java.awt.event.KeyEvent;

public class SimulateClick
{
        /**
         * ターゲットボタンのクリックをシミュレートする関数。
         * この関数によりボタンはあたかもクリックされたかのように描画され、
         * あたかもボタンがクリックされたかのように Action イベントが発生する。
         * Apple MRJ 2.1 EA3 またはそれ以上で使用する。
         */
        static protected void simulateClick(Button target)
        {
                if (target != null)
                {
                        KeyEvent keyEvent = new KeyEvent(target, KeyEvent.KEY_PRESSED, System.currentTimeMillis(),
                                                         0, KeyEvent.VK_ENTER, (char)KeyEvent.VK_ENTER);
                        Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(keyEvent);
                }
        }
}


-- Levi Brown
Worldwide Developer Technical Support