アプレットが同じページ上の別のアプレットにメッセージを送信する方法
このチュートリアルでは、アプレットが同じページにある別のアプレットと通信する/メッセージを送信する/データにアクセスする方法を学習します。
デモ用の2つのアプレットファイルを次に示します。
1. AppletExample1 –ボタンが含まれており、クリックするとAppletExample2の名前が変更されます。
2。 AppletExample2 –「TextArea」を含み、その名前を表示します。
通信はgetAppletContext().getApplet(“Applet Name”)を介して行われ、アプレットは名前で返されます。
P.S The Applet name is specified in HTML page, NOT your Applet’s class name.
1. AppletExample1.java
package com.example.applet; import java.applet.Applet; import java.awt.Button; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class AppletExample1 extends Applet implements ActionListener { Button button; public void init(){ button = new Button("Change AppletExample2's name"); button.setActionCommand("CHANGEME"); button.addActionListener(this); add(button); } @Override public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("CHANGEME")){ AppletExample2 appExample2 = (AppletExample2)getAppletContext().getApplet("HtmlApplet2"); appExample2.setName("Your name changed by Applet1"); } } }
2. AppletExample2.java
package com.example.applet; import java.applet.Applet; import java.awt.FlowLayout; import java.awt.TextArea; public class AppletExample2 extends Applet{ String name; TextArea textBox; public void init(){ name = "no name"; setLayout(new FlowLayout()); textBox = new TextArea(5,40); add(textBox); } public void setName(String name){ this.name = name; textBox.append(this.name); } }
3. HTML
Testing 1234 AppletExample1 AppletExample2
「AppletExample2」は「HtmlApplet2」アプレットの名前で取得できます–getAppletContext().getApplet(“HtmlApplet2”);
4. 出力