Java Appletの解説

<22.フレーム>

フレームの表示方法の基本を説明します。なお、ボタン、テキストフィールドなどの 処理についての説明は、ここでは省略します。

1.フレームを開いたり閉じたりする。

アプレットのボタンを押すことにより、新しいウインドウが開いたり閉じたりします。
1.<Javaファイル>
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class fraex1 extends Applet{
Button bt1,bt2;
myFraex1 w;
public void init(){
w=new myFraex1();
w.setSize(150,150);
w.setLocation(40,140);
add(bt1=new Button("open"));
add(bt2=new Button("close"));
bt1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){ w.setVisible(true);}});
bt2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
w.setVisible(false);}});
}
public void paint(Graphics g){
g.drawString("openで新しいウインドウが開きます",10,50);
g.drawString("closeでウインドウが閉じます",10,70);
}}
class myFraex1 extends Frame{
public void paint(Graphics g){
g.drawString("大吉です!",30,70);
}}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
例1.ここをクリックして下さい。
2.<解説>
1)初期設定
1.w=new myFraex1();フレームの生成
2.w.setSize(150,150);フレームの幅、高さ
3.w.setLocation(40,140);フレームの表示場所
2)w.setVisible();
1.w.setVisible(true);
bt1ボタン(open)を押すとw.setVisible(true);が実行され、新しいウインドウが開きます。
2.w.setVisible(false);
bt2ボタン(close)を押すとw.setVisible(false);が実行され、ウインドウが閉じます。
3)class myFraex1 extends Frame{}
フレームでの処理を記載する。

2.フレームを閉じる。

新しいウインドウは、そのままではウインドウの「×」ボタンを押しても閉じません。 「×」ボタンを押すと閉じる方法および、新しいウインドウの中のボタンを押しても閉じる方法 を解説します。
合わせて、アプレットのテキストファイルからの文字情報を新しいウインドウに送る方法も解説します。
1.<Javaファイル>
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

public class fraex2 extends Applet{
String sp,nasp;
Button bt;
TextField tf1;
myFraex2 w;
public void init(){
add(new Label("名前"));
add(tf1=new TextField("",10));
add(bt=new Button("送信"));
w=new myFraex2("myFraex2");
tf1.addActionListener(new MyListener());
bt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
w.init(nasp);
}});}
class MyListener implements ActionListener{
public void actionPerformed(ActionEvent e){
TextField t=(TextField)e.getSource();
sp=t.getText();
nasp=sp;
}}}
class myFraex2 extends Frame{
String nasp;
Button wbt;
public myFraex2(String t){
setSize(200,200);
setTitle(t);
setLayout(new FlowLayout());
add(wbt=new Button("close"));
}
public void init(String isp){
setBackground(Color.black);
setForeground(Color.white);
nasp=isp;
show();
wbt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
dispose();
}});
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
dispose();
}});}
public void paint(Graphics g){
g.drawString("名前"+nasp,50,100);
}}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
例2.ここをクリックして下さい。
2.<解説>
1)w.init(nasp);フレームの初期化メソッドの呼び出し
btボタン("送信")を押すとw.init(nasp);の処理が行われます。naspはテキストフィールド より入力された文字列です。この文字列をフレームに渡します。
2)public myFraex2(String t){
フレームの初期化
1.setSize(200,200);フレームの幅と高さ
2.setTitle(t);フレームのタイトル設定
3.setLayout(new FlowLayout());
フレームは初期設定はBordeLayoutになっているので、FlowLayoutに設定しなおす。
4.add(wbt=new Button("close"));closeボタンの設定
3)public void init(String isp){
1.nasp=isp;アプレットより取得した文字列ispをnaspに代入。
2.show();フレーム表示
4)wbt.addActionListener(new ActionListener(){
wbtボタン("close")を押された時の処理。
dispose();フレームの削除(フレームを閉じる)
5)addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
ウインドウの×ボタンが押された時の処理
dispose();フレームの削除

3.新しいウインドウに画像を送る。

新しいウインドウ上で、マウス操作をします。その時に使う画像の取得方法説明します。 フレームの中で画像を取得しようとしてもできません。
1.<Javaファイル>
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

public class fraex3 extends Applet{
Button bt;
myFraex3 w;
Image imgs;
public void init(){
imgs=getImage(getDocumentBase(),"peke4.gif");
w=new myFraex3("myFraex3");
add(bt=new Button("open"));
bt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
w.init(imgs);
}});}
public void paint(Graphics g){
g.drawString("openボタンを押して下さい。",10,60);
g.drawString("新しいウインドウが開きます。",10,80);
}}
class myFraex3 extends Frame{
Image imgs;
int px=30,py=30;
public myFraex3(String t){
setSize(300,300);
setTitle(t);
}
public void init(Image isp){
imgs=isp;
addMouseMotionListener(
new MouseMotionAdapter(){
public void mouseMoved(MouseEvent e){
px=e.getX();py=e.getY();repaint();
}});
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
dispose();
}});
show();
}
public void paint(Graphics g){
g.drawImage(imgs,px,py,this);
g.drawString("マウスのボタン押さずウインドウ上動かしてください",10,240);
}}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
例3.ここをクリックして下さい。
2.<解説>
1)imgs=getImage(getDocumentBase(),"peke4.gif");
イメージ画像を取得する方法はフレームにおいてもうまく作動しません。 そこで、アプレットからフレームに画像を送ります。
2)w.init(imgs);
例2と同じで今度は文字列でなく、画像になります。
以下例2と同じです。



トップページ

趣味のトップページ

娯楽室の各部屋
Aplletの解説へ戻る

Scriptの解説 Scriptのゲーム Appletのゲーム Linuxの部屋 物置部屋