ユーザーが特定のアクションを実行したとき それを効果的に処理する位置になければなりません。 Javaのアクションリスナーは、このような状況で非常に便利です。この記事では、次の点について説明します。
アクションリスナーの紹介
プログラマーとして、アクションリスナーがユーザーの操作に対して何ができるかを定義するのはあなたの義務です。たとえば、ユーザーがメニューバーから特定の項目を選択するか、テキストフィールドのEnterキーを押して新しい行に移動する、単純なシナリオを考えてみましょう。このようなユーザー機能が実行されると、「アクションが実行されました」というメッセージが、関連するコンポーネントで定義されているそれぞれのアクションリスナーすべてに送信されます。
以下に、アクションリスナーの記述方法を図で示します。
ここで重要で不可欠な部分は、アクションリスナーインターフェイスを実装できるオブジェクトです。このオブジェクトは、プログラムによって、イベントソースに他ならないボタンのアクションリスナーとして識別される必要があります。
したがって、addActionListenerメソッドを利用すると、ユーザーがボタンをクリックすると、アクションイベントが発生します。これにより、アクションリスナーのactionPerformedメソッドが呼び出されます。これがActionListenerインターフェースの唯一のメソッドであることに注意してください。 メソッドへの単一の引数は、イベントとそのソースに関する情報を提供するActionEventオブジェクトです。
アクションイベントクラス
メソッド | 説明 |
文字列getActionCommand() | このアクションに関連付けられた文字列を返します。アクションイベントを発生させることができるほとんどのオブジェクトは、この文字列を設定できるsetActionCommandと呼ばれるメソッドをサポートしています。 doubleをintjavaに丸めます |
int getModifiers() | これは、ユーザーがアクション中のイベント中に押していた整数を返します。 SHIFT_MASK、CTRL_MASK、META_MASK、ALT_MASKなどのActionEventで定義された定数は、押されたキーを判別するために使用されます。たとえば、ユーザーがメニュー項目を選択した場合、式はゼロ以外になります |
オブジェクトgetSource() (java.util.EventObject内) | イベントを発生させたオブジェクトを返します。 |
Javaでのアクションリスナーの実装
パッケージcom.javapointers.javaseimport java.awt.BorderLayout import java.awt.event.ActionEvent import java.awt.event.ActionListener import javax.swing.JButton import javax.swing.JFrame import javax.swing.JTextArea public classActionListenerTestが実装しますActionListener {JButtonボタンJFrameフレームJTextAreatextArea public ActionListenerTest(){button = new JButton( 'Click Me')frame = new JFrame( 'ActionListener Test')textArea = new JTextArea(5、40)button.addActionListener(this)textArea。 setLineWrap(true)frame.setLayout(new BorderLayout())frame.add(textArea、BorderLayout.NORTH)frame.add(button、BorderLayout.SOUTH)frame.pack()frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)frame.setVisible( true)} @Override public void actionPerformed(ActionEvent e){textArea.setText(textArea.getText()。concat( 'You have clicked the buttonn'))} public static void main(String args []){ActionListenerTest test = new ActionListenerTest()}}
上記のコードでは、アクションリスナーにアクセスする前に、アクションリスナーをクラスに実装する必要があります。したがって、implementsキーワードとリスナーを必ず追加してください。
cssでホバーを使用する方法
button.addActionListener(this)
これは、コンポーネントボタンがアクションイベントのために追跡されているコンポーネントに含まれることを意味します。ユーザーが特定のコンポーネントをクリックしたときにコードを追加するには、アクションリスナーにコンポーネントを追加する必要があります。アクションリスナーで追加されていないコンポーネントは、監視に失敗します。
次に、Javaのアクションリスナーの別の簡単な例と、それがどのように機能するかを見てみましょう。
例2:
ここに、赤、緑、青という名前の3つの単純なJavaボタンオブジェクトがあります。クリックしたボタンに応じて、背景画面の色が変わります。
nagiosが監視できるもの
次の図は、このドキュメントの最後に配置されているコードのそれぞれの出力を示しています。画面が青色に変わるインスタンスは1つだけ表示されています。このコードを実装することで、赤や緑などの他の色を表示できます。
ボタンオブジェクト「rb」はActionListenerにリンクされています。 「this」パラメーターは、ActionListenerを表します。リンクが行われていない場合、プログラムは3つのボタンを表示しますが、イベント処理は行いません。
ActionEventクラスのgetActionCommand()メソッドは、ユーザーがクリックした対応するボタンのラベルを文字列として返します。 str。
importjava.awt。* importjava.awt.event。* public class ButtonDemo extends Frameimplements ActionListener {Button rb、gb、bb // 3つのボタン参照変数publicButtonDemo()//ボタンのプロパティを定義するコンストラクター{ FlowLayout fl = new FlowLayout()//レイアウトをフレームに設定setLayout(fl)rb = new Button( 'Red')//変数をオブジェクトに変換gb = new Button( 'Green')bb = new Button( 'Blue') rb.addActionListener(this)// JavaボタンをActionListenerにリンクしますgb.addActionListener(this)bb.addActionListener(this)add(rb)//各Javaボタンをフレームに追加しますadd(gb)add(bb)setTitle( 'Button in Action ')setSize(300、350)//フレームの寸法(幅x高さ)setVisible(true)//モニターに表示されるフレームを定義します。デフォルトはsetVisible(false)} // ActionListenerインターフェースの抽象メソッドのみをオーバーライドしますpublicvoid actionPerformed(ActionEvent e){String str = e.getActionCommand()//クリックされたボタンを識別するSystem.out.println( 'クリックした' + str + 'ボタン')// if(str.equals( 'Red')){setBackground(Color.red)} else if(str.equals( 'Green')){setBackground(Color.green)} else if(str.equals( 'Blue') ){setBackground(Color.blue)}} public static void main(String args []){new ButtonDemo()//コンストラクターを呼び出すButtonDemoの匿名オブジェクト}}
これで、Javaでのこのアクションリスナーの記事は終わりです。 Javaのアクションリスナーについて理解していただければ幸いです。
チェックしてください 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。 EdurekaのJavaJ2EEおよびSOAトレーニングおよび認定コースは、Java開発者になりたい学生および専門家向けに設計されています。このコースは、Javaプログラミングをすぐに開始できるように設計されており、HibernateやSpringなどのさまざまなJavaフレームワークに加えて、コアと高度なJavaの両方の概念についてトレーニングします。
質問がありますか?この「Javaのアクションリスナー」ブログのコメントセクションでそれについて言及してください。できるだけ早くご連絡いたします。