Javaでのイベント処理:それは何で、どのように機能しますか?

公開: 2020-03-21

Windows用のJavaアプリケーションを含む、グラフィックユーザーインターフェイスまたはGUIベースのプログラムはすべて、イベントによって駆動されます。 Javaアプリケーションのようなプログラムが役立つためには、ユーザーからのコマンドまたは入力に対する応答を提供する必要があります。 Javaアプリケーションには、ユーザーアクションをキャプチャするイベントがあります。 Javaでのイベント処理について説明する前に、イベントについて説明することから始めましょう。

目次

イベントとは何ですか?

イベントは、すべてのプログラミング言語で同じ意味と重要性を持っています。 これらはユーザーによって制御される外部効果であり、さまざまなユーザーアクションへの応答を記録するために設定された事前定義された条件に沿ってアプリケーションを動作させます。 イベントは、GUI内で変更が行われたときに活気づくオブジェクトと呼ぶこともできます。

Javaでのイベントの例には、文字やテキストの入力、コンボボックスのクリック、ボタンのクリック、またはユーザー側からのその他のアクションが含まれます。 このようなアクションはイベントをトリガーし、その結果、そのイベントに関連するイベントオブジェクトが作成されます。

たとえば、ユーザーが何らかのデータ(イベントをトリガーするユーザーアクション)を入力すると、アプリケーションはダイアログボックスを表示するか、情報(イベントオブジェクト)を表示することによって出力を生成します。 これらのイベント関連の動作は、Javaのイベント処理メカニズムの一部であり、SwingGUIライブラリに存在します。 すべてのイベントのソースとイベントリスナーをリンクする必要があることに注意することが重要です。 そうでない場合、イベントをトリガーしてもアクションは発生しません。

プログラムまたはアプリケーションをイベント駆動型にする必要があるのはなぜですか?

イベント処理が登場する前に、プログラムは、特定の時点で何をしていたかを知るために、すべてのユーザー情報自体を収集する必要がありました。 これは、実行または初期化された後、プログラムは常にユーザーが何かをするのを待っている大きな繰り返しループにあったことを意味します。

そのため、プログラムはボタンを押すことからスライダーを動かすことまで、あらゆるアクションを探していました。 ユーザー側から何かが起こったことを知った後、適切な応答を提供する準備をしました。 これはポーリングと呼ばれます。 ポーリングは仕事を成し遂げますが、多くの場合、それは管理しにくく時間のかかる作業として出くわします。

読む: Java開発者インタビューの質問と回答

現代のアプリケーションに使用することを検討すると、要件に実際には適合しません。 2つの主な理由により、ポーリングは最新のアプリケーションには不適切です。ポーリングは、すべてのイベント関連コードを大きな繰り返しループ内に配置し、この場所内で行われる相互作用は複雑すぎます。 また、ポーリングにより、プログラムは無限ループに入り、ユーザーからのアクションの保証なしにCPUサイクルが使い果たされます。

Abstract Window ToolkitまたはAWTは先に進んでおり、上記の問題を解決するための別の作業モデルとの関連性を確立しています。 この新しいモデルは、イベント駆動型プログラミングです。 AWTを使用すると、プログラムがユーザー生成イベントを監視する必要はありません。 この仕事をするのはJavaランタイムです。 イベントが行われるとすぐにプログラムを親密にします。 貴重なリソースを枯渇から節約し、ユーザーの操作をより適切に処理します。

Javaのイベントハンドラとは何ですか?それらはどのように機能しますか?

それでは、私たちが取り組もうとしている主要なトピックについて説明しましょう。 Javaでのイベント処理はどのように機能しますか?

前述のように、イベントは、アプリケーションを特定の方法で動作させるユーザーアクションまたは外部効果です。 Javaでは、テキストボックスやボタンなどのAWTコンポーネントがイベントの生成を担当します。 イベントが生成されるとすぐに、リスナーはそれを処理し、適切なアクションを実行します。

Javaでのイベント処理は、4つの要素で構成されています。 これらは、イベントハンドラーと呼ばれることもあります。

1.イベントソース:イベントを生成するイベントソースは、ほとんどがAWTコンポーネントです。 java.awt.componentコマンドを実行して、イベントの生成に役割がある場合とない場合があるコンポーネントについて学習できます。 コンポーネントは、元のソースクラスのサブクラスです。 イベントソースは、テキストボックスやコンボボックスからボタンなど、何でもかまいません。

読む: JavaのMVCアーキテクチャ

2.イベントクラス:Javaでは、これらはイベントの生成に関係するほぼすべてのコンポーネントを説明するクラスです。 これらはイベントタイプとも呼ばれます。 最も一般的なイベントクラスのいくつかを次に示します。

  • ActionEvent :このイベントクラスまたはイベントタイプは、ボタンやリストアイテムなどのグラフィカル要素のクリックを伴うイベントを表します。 このクラスに関連するリスナーはActionListenerです。
  • KeyEvent :このイベントクラスは、キーの押下と解放を伴うイベントを表します。 このクラスに関連付けられているリスナーはKeyListenerです。
  • ContainerEvent :このイベントタイプは、GUIコンテナで発生するイベントを表します。 このクラスは、ユーザーアクションにGUIからのオブジェクトの追加または削除が含まれるすべてのイベントに関連付けられています。 このクラスに関連するリスナーはContainerListenerです。
  • MouseEvent :このクラスは、マウスのクリックまたはプレスに関連するすべてのイベントを表します。 このクラスのリスナーはMouseListenerです。
  • WindowEvent :このイベントクラスまたはタイプは、ウィンドウに関連するアクションを含むイベントを表します。 ウィンドウを閉じる、アクティブ化する、または非アクティブ化することは、このクラスに分類されます。 このクラスに関連するリスナーはWindowListenerです。

3.イベントリスナー:これらは、実装されたさまざまなクラスで使用できるさまざまなメソッドを提供するJavaのインターフェースです。 イベントリスナーの仕事には、イベントをリッスンし、イベントが発生したときに適切に処理することが含まれます。 Javaのほとんどすべてのコンポーネントには、そのコンポーネントが生成するすべてのイベントを処理する専用のリスナーがあります。 ActionListenerは、リスト、ボタン、テキストフィールド、およびメニューを含むイベントを処理します。

4.イベントアダプタ:プログラムがリスナーにオーバーライドするにはあまりにも多くの抽象メソッドを提示する場合、それをコンパイルするのが難しくなる可能性があります。 たとえば、フレームを閉じたい場合、オーバーライドする必要のあるWindowListener抽象メソッドが7つあります。 複雑さと重いコーディングを減らすために、Javaにはイベントアダプタがあります。 イベントアダプタはすでに抽象メソッドをオーバーライドしています。

結論

複数のイベントソースとリスナーが相互に対話できることを覚えておくことが重要です。 したがって、同じクラスに属する複数のイベントを1つのリスナーで処理できます。 これは、1つのリスナーが、同様のアクションを実行する同じコンポーネントに関連するすべてのイベントを処理できることを意味します。 同様の行で、プログラムの設計で許可されている場合にのみ、単一のイベントを複数のリスナーで処理できます。

意味がありますか?

はい?

番号?

Javaでのイベント処理に関する広範なセッションについては、私たちに連絡してください。 あなたはそれを後悔しないでしょう!

Web開発用のJavaについて詳しく知りたい場合は、upGrad&IIIT-Bのフルスタックソフトウェア開発のPGディプロマをチェックしてください。これは、働く専門家向けに設計されており、500時間以上の厳格なトレーニング、9以上のプロジェクト、および課題を提供します。 IIIT-B卒業生のステータス、実践的な実践的なキャップストーンプロジェクト、トップ企業との雇用支援。

あなたの夢の仕事に着陸

ソフトウェア開発におけるアップグレードおよびIIIT-BANGALOREのPGディプロマ
もっと詳しく知る