以前は、プログラムは最もシンプルな入力および出力法を使用し、プログラムは画面に出力されました。最新のプログラムでは、メニュー、ボタンなどを含むグラフィカルユーザーインターフェイス(GUI)の使用が必要です。ユーザーはメニューのオプションを選択し、マウスを介してボタンをクリックしてプログラム機能モジュールにコマンドします。この章では、Java言語でGUI科学実験を書く方法と、GUIを介して入力と出力を実装する方法を学びます。
awtとswing
以前は、JavaでGUIプログラムを作成しました。スイングは、AWTを置き換えるのではなく、AWTの改善されたバージョンと見なすことができ、AWTの改善と拡張です。したがって、GUIプログラムを書くときは、SwingとAWTの両方を使用する必要があります。彼らはJava Foundationクラス(JFC)に共存します。
AWTとSwingは、グラフィックインターフェイス要素を構築するクラスを提供しますが、AWTはメインプラットフォームに依存して、Swingがメインプラットフォームで提供されるメカニズムを描画します。 SwingとAWTの最も明らかな違いは、インターフェイスコンポーネントの外観です。ただし、スイングベースのアプリケーションは、どのプラットフォームでも同じ外観とスタイルを持つ場合があります。
スイング中のクラスはAWTから継承され、一部のスイングクラスはAWTの対応するクラスを直接拡張します。たとえば、Japplet、Jdialog、JFrame、Jwindow。
スイングを使用してグラフィカルインターフェイスを設計するには、2つのメインパッケージが導入されています。
スイングは豊かすぎるため、教科書でスイングを包括的に紹介することは不可能ですが、この章で導入されたスイングに関する知識は、読者が非常に絶妙なGUIプログラムを書くことができるのに十分です。
コンポーネントとコンテナ
コンポーネントは、ボタンなどのユーザーが直接動作できるグラフィカルインターフェイスの基本要素です。コンテナはグラフィカルインターフェイスの複合要素であり、コンテナにはパネルなどのコンポーネントが含まれている場合があります。
Java言語は、各コンポーネントの事前定義されたクラスであり、プログラムはさまざまなコンポーネントオブジェクトを通過します。たとえば、事前定義されたボタンクラスJbutton in Swing、プログラムによって作成されたJButtonオブジェクト、またはJButtonサブクラスのオブジェクトです。それはボタンです。 Java言語は、各コンテナの事前定義されたクラスもあり、プログラムはそれらまたはそのサブクラスを介してさまざまなコンテナオブジェクトを作成します。たとえば、スイングの事前定義されたウィンドウクラスJFrameはコンテナクラスであり、プログラムによって作成されたJFrameまたはJFrameサブクラスのオブジェクトはウィンドウです。
コンポーネントとコンテナを統一された方法で管理するために、すべてのコンポーネントクラスに対してスーパークラスが定義され、コンポーネントの共通操作はコンポーネントクラスで定義されます。同様に、すべてのコンテナクラスのスーパークラスコンテナクラスを定義し、コンテナクラスでコンテナの共有操作を定義します。たとえば、ADD()メソッドはコンテナクラスで定義されています。
コンポーネント、コンテナ、グラフィックスのクラスは、AWTライブラリの重要なクラスです。階層レベルで複雑なグラフィカルインターフェイスを構築するために、コンテナは別の容器に配置できる特別なコンポーネントとして扱われます。たとえば、2つのパネルにいくつかのボタンとテキストボックスを分離し、これらの2つのパネルと他のボタンをウィンドウに配置します。インターフェイスを階層的に構築するこの方法は、複雑なユーザーインターフェイスを漸進的な方法で構築することができます。
イベントドライバーデザインの基本
1。イベント、モニター、監視登録<br />グラフィカルインターフェイス上のイベントは、コンポーネントで発生するユーザー操作を参照しています。たとえば、ユーザーがインターフェイスのボタンをクリックすると、このボタンでイベントが発生し、ボタンオブジェクトがイベントのトリガーであることを意味します。イベントを監視するオブジェクトはモニターと呼ばれ、モニターはイベントを処理する方法を提供します。モニターをイベントオブジェクトに関連付けるには、イベントオブジェクトを登録して、イベントオブジェクトのモニターをシステムに伝える必要があります。
プログラムを取得すると、ボタンイベントに応答します。プログラムは、ボタンオブジェクトを作成し、インターフェイスに追加し、ボタンをモニターとして登録し、プログラムにボタンイベントに応答する方法が必要です。 「クリックボタン」イベントが発生すると、システムはこのボタンに登録されたイベント処理方法を呼び出して、ボタンイベントの処理作業を完了します。
2。イベント処理の使命を実現します
Java言語でイベントハンドラーを作成するための2つの主要なソリューションがあります。1つは、HeanddEvent(Eventevt)をリセットすることであり、このソリューションを使用するプログラムは、いくつかのシステムセットインターフェイスを実装することです。 Javaは、イベントタイプに応じて複数のインターフェイスを提供します。対応するインターフェイス、つまりイベントに応答する方法を実装する必要があります。イベントが発生すると、システムの組み込みハンドルエベント(Event EVT)メソッドは、モニターのクラスによって実装されたイベントに応答するためにメソッドを自動的に呼び出します。
イベントを検出して対応するためにjava.awt.Eventパッケージで使用されているモデルには、次の3つのコンポーネントが含まれます。
ソースオブジェクト:イベントのコンポーネントでは、イベントを「聞く」オブジェクトのグループとの接触を維持します。
モニターオブジェクト:事前定義されたインターフェイスを実装するクラスのオブジェクト。
イベントオブジェクト:イベントが発生したときにソースからモニターに渡された特定のイベントを説明する情報が含まれています。
イベントドライバーがソースオブジェクトを作成し、モニターオブジェクトを作成することに加えてやりたい作業も、モニターがソースオブジェクトを理解するか、ソースオブジェクトにモニターを登録する必要があります。各ソースオブジェクトには登録されたモニターリストがあり、そのリストにモニターオブジェクトを追加する方法を提供します。システムは、ソースオブジェクトがモニターを登録した後にのみ、ソースオブジェクトに発生するイベントのモニターオブジェクトに通知します。
3.イベントタイプと監視インターフェイス<br /> java言語では、イベントを管理するシステムを容易にし、モニターを登録するプログラムを容易にするために、システムはイベントタイプと呼ばれるイベントを分類します。システムは、各イベントタイプのインターフェイスを提供します。モニターオブジェクトになるクラスは、対応するインターフェイスを実装し、インターフェイスで指定されたイベントに応答する方法を提供する必要があります。
プログラム応答ボタンイベントを例にとると、JButtonクラスオブジェクトボタンはイベントのイニシエーターになります。ユーザーがインターフェイス内のボタンに対応するボタンをクリックすると、ボタンオブジェクトがアクションエベントタイプのイベントを生成します。モニターオブジェクトがOBJであり、クラスOBJがOBJである場合、クラスOBJはAWTにActionListenerインターフェイスを実装して、ボタンイベントを監視するアクションパフォーマンスの方法を実装する必要があります。ボタンオブジェクトは、AddactionListenerメソッドを使用してモニターOBJを登録する必要があります。
プログラムが実行されているとき、ユーザーがボタンオブジェクトに対応するボタンをクリックすると、システムはイベントファイアオブジェクトからモニターにアクションエベントオブジェクトを渡します。 ActionEventオブジェクトには、イベントが発生するボタンやイベントに関するその他の情報などの情報が含まれています。
次の表は、いくつかの代表的なイベントタイプと、これらのイベントを生成するいくつかのスイングコンポーネントを示しています。実際のイベントが発生すると、たとえば、ユーザーがボタンをクリックすると、エベントの変化イベントがボタンにあることを意味し、その後、マウスが押されます。 ActionEventイベントは、マウスがリリースされたことを意味しますが、カーソルはまだボタン上にあります。ただし、アプリケーションは通常、ボタンを押すという完全なアクションの単一のActionEventイベントのみを処理します。
各イベントタイプには対応するモニターインターフェイスがあり、表11-2に各インターフェイスのメソッドを示します。モニターインターフェイスを実装するクラスは、インターフェイスで定義されているすべてのメソッドを実装する必要があります。