ホームページ >Java >&#&チュートリアル >Java のボタンクリックイベントの処理方法の詳細な説明

Java のボタンクリックイベントの処理方法の詳細な説明

巴扎黑
巴扎黑オリジナル
2017-04-17 10:45:007965ブラウズ

次のエディターは、Java でボタンのクリック イベントを処理する方法に関する記事を提供します。編集者はこれが非常に良いものだと思ったので、皆さんの参考として今から共有します。エディターに従って、さまざまなイベント ソースがさまざまなタイプのイベントを生成できることを見てみましょう。たとえば、ボタンは ActionEvent オブジェクトを送信でき、ウィンドウは WindowEvent オブジェクトを送信できます。

AWT 時間処理メカニズムの概要:

1. リスナー オブジェクトは、特定のリスナー インターフェイスを実装するクラスのインスタンスです。

2. イベントソースは、リスナーオブジェクトを登録し、イベントオブジェクトを送信できるオブジェクトです。

3. イベントが発生すると、イベント ソースは登録されているすべてのリスナーにイベント オブジェクトを渡します。

4. リスナー オブジェクトは、イベント オブジェクト内の情報を使用して、イベントへの応答方法を決定します。

リスナーの例を次に示します:

ActionListener listener = ...;
JButton button = new JButton("OK");
button.addActionListener(listener);

これで、ボタンが「アクションイベント」を生成するたびに、リスナーオブジェクトに通知されます。ボタンの場合、アクション イベントはボタンをクリックすることだと考えられます。

ActionListener インターフェースを実装するには、リスナー クラスに、ActionEvent オブジェクト パラメーターを受け取る actionPerformed というメソッドが必要です。

class MyListener implements ActionListener
{
 ...;
 public void actionPerformed(ActionEvent event)
 {
   //reaction to button click goes here
 }
}

ユーザーがボタンをクリックしている限り、JButton オブジェクトは ActionEvent オブジェクトを作成し、listener.actionPerformed(event) を呼び出してイベント オブジェクトを渡します。複数のリスナー オブジェクトをボタンのようにイベント ソースに追加できます。このようにして、ユーザーがボタンをクリックするたびに、ボタンはすべてのリスナーの actionPerformed メソッドを呼び出します。

例: ボタン クリック イベントの処理 イベント委任モデルの理解を深めるために、知っておく必要がある詳細を説明するために、ボタン クリック イベントに応答する簡単な例を次に示します。この例では、パネルに 3 つのボタンを配置し、ボタンのアクション リスナーとして機能する 3 つのリスナー オブジェクトを追加します。

この場合、ユーザーがパネル上のいずれかのボタンをクリックしている限り、関連するリスナー オブジェクトは、ボタンがクリックされたことを示す ActionEvent オブジェクトを受け取ります。サンプルプログラムでは、リスナーオブジェクトによりパネルの背景色が変更されます。

ボタンのクリック イベントをリッスンする方法を説明する前に、まずボタンの作成方法とパネルにボタンを追加する方法を説明する必要があります。

ボタンコンストラクターでラベル文字列、アイコン、またはその両方を指定することでボタンを作成できます。以下に 2 つの例を示します:

JButton yellowButton = new JButton("Yellow");
JButton blueButton = new JButton(new ImageIcon("blue-ball.gif"));

パネルにボタンを追加するには、add メソッドを呼び出す必要があります:

JButton yellowButton = new JButton("Yellow");
JButton blueButton = new JButton("Blue");
JButton redButton = new JButton("Red");

buttonPanel.add(yellowButton);
buttonPanel.add(blueButton);
buttonPanel.add(redButton);

この時点で、パネルにボタンを追加する方法がわかりました。これらのボタンのコードをリッスンするパネルを追加します。これには、ActionListener インターフェイスを実装するクラスが必要です。前に述べたように、次のシグネチャを持つ actionPerformed メソッドを含める必要があります。

public void actionPerformed(ActionEventevent)

ボタンがクリックされたとき、パネルの背景色を指定した色に設定したいとします。この色はリスナー クラスに保存されます:

class ColorAction implements ActionListener
{
  public ColorAction(Color c)
  {
   backgroundColor = c;
  }
  public void actionPerformed(actionEvent event)
  {
   //set panel background color
   }
   private Color backgroundColor;
}

次に、各色のオブジェクトを構築し、これらのオブジェクトをボタン リスナーとして設定します。

ColorAction yelloAction = new ColorAction(Color.YELLOW);
ColorAction blueAction = new ColorAction(Color.BLUE);
ColorAction redAction = new ColorAction(Color.RED);

yellowButton.addActionListener(yellowAction);
blueButton.addActionListener(blueAction);
redButton.addActionListener(redAction);

たとえば、ユーザーが「Yellow」というラベルの付いたボタンをクリックすると、 yellowAction オブジェクトの actionPerformed メソッドが呼び出されます。このオブジェクトのbackgroundColorインスタンスフィールドはColor.YELLOWに設定されています。次に、パネルの背景色を黄色に設定します。

考慮すべきもう 1 つの質問があります。 ColorAction オブジェクトは buttonpanel 変数にアクセスできません。この問題は 2 つの方法で解決できます。 1 つは、パネルを ColorAction オブジェクトに格納し、ColorAction のコンストラクターに設定する方法です。もう 1 つは、ColorAction を ButtonPanel クラスの内部クラスにして、そのメソッドが外部パネルに自動的にアクセスできるようにする方法です。

以下では、ButtonFrameクラス内にColorActionクラスを配置する方法を説明します。

りー

以上がJava のボタンクリックイベントの処理方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。