- Home ›
- Swing ›
- Swingを使ったプログラミングの基本 ›
- HERE
イベントを使った処理の実行
フレーム上に配置されたボタンが押された時に何らかの処理を実行したい場合、イベントと呼ばれる機能を使います。
アプリケーションは様々なコンポーネントから構成されていますが、コンポーネントの上をマウスが動いたりキーボードから文字が入力されたりと利用者が何らかの操作を行った時に、その操作に応じてイベントと呼ばれるものを発行します。イベントはコンポーネント毎に発行されますし、利用者の様々な操作に応じて別々のイベントが発行されるため数多くのイベントが常に発行されています。
数多く発行されるイベントに対して全て処理する必要はありません。例えば数多く追加された一つのボタンのおいて、マウスがクリックされたことだけを知りたいのであれば、そのイベントだけを受け取るように設定しておきます。受け取るように設定しなかったイベントは発行されてもどんどん捨てられていくことになります。
後はイベントを受け取った時に実行する処理を記述しておくだけです。これでボタンが押されたら、何らかの特殊な処理を実行することが可能になります。
1.ボタンが押される 2.イベントが発行される 3.イベントを受け取る 4.処理を実行する
この仕組みの便利なところは、利用者の操作に応じてイベントが発行されるところは何もプログラムをする必要がなく、プログラムする箇所としては受け取りたいイベントを指定し、そのイベントを受け取った時に実行する処理を記述するだけで済むことです。このような仕組みをイベント処理といいます。
イベント処理の例
次のようなアプリケーションを作成したとします。
ボタンAとボタンBが設置されていますが、今回はボタンAが押された時のイベントだけを受け取るように設定しています。そこでボタンAを押すと次のようなダイアログが表示されるようにしました。
それに対してボタンBが押された時のイベントは受け取るようにしていません。その為、ボタンBを押してもイベントは発行されますが誰も受け取りませんので、何も起きません。
このようにイベントを使ったプログラムは自動的に発行されるイベントの中で受け取りたいイベントを指定し、それに対する処理を記述するだけなので非常に簡潔にプログラムを記述することができます。
イベントにはその元となった利用者の操作内容によって、様々な情報が含まれています。例えばマウスがいる位置であるとか、押されたキーボードの文字であるとかです。必要なイベントを選択して受け取るように設定し、イベントに含まれる情報を活用するには最初は難しいかもしれませんが、何度かプログラムを記述していると直感的にどのイベントを受け取るべきか分かるようになると思います。
( Written by Tatsuo Ikura )