プロが教えるわが家の防犯対策術!

こんにちは。

JavaのSwingにおいて,以下のようなプログラムがあるとします。
その場合,A.javaでボタンを押すと,B.javaのフォームが閉じるようにしたいのですがどのようにしたらいいのでしょうか?よろしくお願いします。

****A.java****
import ☆省略☆;

public class A extends JFrame implements ActionListener{
//ボタン
JButton end;

public A(){
//フレームの設定
setVisible(true);
setTitle("テスト");
//コンテナの設定
con = getContentPane();
//ボタン
end = new JButton(" 終了 ");
end.addActionListener(this); end.setActionCommand("end");

con.add(end);
pack();
}

public void actionPerformed(ActionEvent e){
String m = e.getActionCommand();
if(m == "end"){
※ここに書くべき処理
}
}
}

****B.java****
import ☆省略☆;

public class B extends JFrame{
//コンテナ
Container con;

public Answer(){
//フレームの設定
setVisible(true);
setTitle("B");
//コンテナに関わる設定
con = getContentPane();

}

}

A 回答 (2件)

こんにちは。



補足ありがとうございました。

AからBを開いているのであればbのインスタンスに対してsetVisible(false)を設定すればウィンドウは消えます。

JFrame bFrame;

public A() {
bFrame = new BFrame();
// AframeでBを表示
bFrame.setVisible ( true );
}

public void actionPerformd ( ActionEvent e ) {
String command = e.getActionCommand();
if ( "end".equals(command) ) {
// endだったらBを閉じる
bFrame.setVisible ( false );
}
}

※文字列が同じかどうかの判断は==ではなくequalsですのでご注意を
    • good
    • 1

こんにちは。



AのFrameからBのFrameが参照できていないと閉じることが出来ないと思いますが、どのような関連性になっていますか?

この回答への補足

返信遅れて申し訳ありません。

Aから、new B();でフォームを起動しているだけなのです。これではだめでしょうか?

補足日時:2012/01/16 02:11
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!