Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

windowAdapter関連の質問です。

いつもお世話になっております。iMDPです。
早速なんですが、質問させてください。
下記のウィンドウのイベント処理をアダプターを使って実装するサンプルコードです。サンプルコードの中で、イベント(ウィンドウが開いたとき)が発生した時にwindowOpenedメソッドの中でthis.setTitle("nonono");でウィンドウのタイトルバーにメッセージを表示したいのですが、うまくいきませんでした。
どうすれば、この問題を解決できるのでしょうか?
f.setTitle("nonono");のようにやってみましたが、エラーが起きます。
よろしくお願いします。


import java.awt.*;
import java.awt.event.*;
class WindowAdapterFrame extends Frame{
public WindowAdapterFrame(){
this.addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
public void windowOpened(WindowEvent e){
this.setTitle("nonono");//★ウィンドウが開いたときにメッセージを表示したい。
}
}
);
}
}

public class WindowAdapterFrameMain{
    public static void main(String[] args){
        Frame f = new WindowAdapterFrame();
        f.setSize(250,100);
        //f.setTitle("WindowAdapter");
        f.setVisible(true);
    }
}

2

回答

5100

閲覧

2件の回答

評価

0



import java.awt.*;
import java.awt.event.*;

class WindowAdapterFrame extends Frame
{
    public WindowAdapterFrame()
    {
        this.addWindowListener(new WindowAdapter()
        {
            public void windowClosing(WindowEvent e)
            {
                System.exit(0);
            }
            public void windowOpened(WindowEvent e)
            {
                //ここ注意してください

                WindowAdapterFrame.this.setTitle("nonono");
                //★ウィンドウが開いたときにメッセージを表
        //示したい。
            }
        });
    }
}

class WindowAdapterFrameMain
{
    public static void main(String[] args)
    {
        Frame f = new WindowAdapterFrame();
        f.setSize(250,100);
        //f.setTitle("WindowAdapter");
        f.setVisible(true);
    }
}

this.setTitle("nonono")じゃなくて
WindowAdapterFrame.this.setTitle("nonono")です

匿名内部クラスで外側のthisを使いたい場合は
[外側のクラス名].this という形式で取得できます




評価

0

清原様
なるほど、参考になりました。
お返答の方、本当にありがとうございました。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。