コンポーネントイベントの管理
関連項目
Java プログラミング言語では、イベントを使用して、GUI フォームが動作できるようにします。ソースオブジェクトはイベントを発動することができ、それに対して、イベントリスナーを持つオブジェクトがイベントハンドラを使用して応答します。
イベントハンドラの定義
イベントハンドラは、コンポーネントのプロパティーシートまたはコンテキストメニューを使用して定義できます。接続ウィザードを使用してイベントハンドラを定義することもできます。
プロパティーシートを使用してイベントハンドラを定義する
- 「インスペクタ」ウィンドウでコンポーネントを選択する。
- 「プロパティー」ウィンドウの上部にある「イベント」ボタンをクリックします。
- リストの中でハンドラを定義するイベントの値をクリックします。どのイベントも、初期値は 「<なし>」です。値のフィールドをクリックすると、「<なし>」 が自動的にデフォルトイベント名に置き換わります。
- 省略符号 (...) ボタンをクリックして「ハンドラ」ダイアログを開きます。
- 「追加」ボタンをクリックし、ハンドラのリストに新しい名前を追加することにより、イベントハンドラの名前を入力します。「了解」をクリックします。
リスナーのコードとハンドラメソッドの空の本体が生成されます。
- ソースエディタで、新規イベントハンドラにコードを追加する必要があることに注意してください。
コンテキストメニューを使用してイベントハンドラを定義する
- 「ファイル」ウィンドウ、「プロジェクト」ウィンドウ、または「インスペクタ」ウィンドウでフォームコンポーネントを右クリックします。
- コンテキストメニューとそのサブメニューから「イベント」を選択します。「イベント」サブメニューの中の太字のメニュー項目は、定義済みのイベントハンドラを示しています。
リスナーのコードとハンドラメソッドの空の本体が生成されます。デフォルト名がイベントハンドラに割り当てられます。
- ソースエディタで新規イベントハンドラのコードを追加します。
- 同じ種類のイベントには、同じハンドラを利用できます。たとえば、focusGained と focusLost はともに java.awt.event.FocusEvent のイベントであるため、その両方を button1FocusChange ハンドラを使用するように設定できます。また、複数のコンポーネントにある同じイベントにも、同じハンドラを使用できます。
1 つのイベントに対する複数ハンドラの追加
- 「インスペクタ」ウィンドウで、複数のハンドラを追加するコンポーネントを選択します。
- 「プロパティー」ウィンドウの上部にある「イベント」ボタンをクリックします。
- プロパティーシートでイベントを選択し、省略符号ボタン (...) をクリックして「ハンドラ」ダイアログを表示します。上記の手順を繰り返して、ほかのイベントハンドラを追加します。
イベントハンドラの削除
- 「インスペクタ」ウィンドウで、削除するイベントハンドラがあるコンポーネントを選択します。
- 「プロパティー」ウィンドウの上部にある「イベント」ボタンをクリックします。
- プロパティーシートでイベントを選択し、省略符号ボタン (...) をクリックして「ハンドラ」ダイアログを表示します。または、削除するハンドラの名前を「プロパティー」ウィンドウで削除できます。
- 「ハンドラ」ダイアログでは、削除するハンドラをリストから選択し、「削除」をクリックします。
イベントハンドラを削除すると、対応するコードブロックも削除されます。複数のハンドラが同じ名前と同じコードブロックを使用している場合、そのコードに対する単一の参照を削除してもコード自体は削除されません。すべての参照を削除した場合にだけ、対応するコードブロックが削除され、最初に確認ダイアログが表示されます。
Java イベントモデルを含む、プログラムにおけるイベントの処理方法については、次の場所にある『Creating a GUI with JFC/Swing』チュートリアルを参照してください。
- 関連項目
- 接続ウィザードによるイベントの設定
- コンポーネントのプロパティーの編集
- GUI ソースコードの変更
著作権と商標について