-2

このコードの問題は、これを実行するたびに、

コンパイルエラー-

"symbol:constructor mywindowadapter(frame1)が見つかりません

location:class mywindowadapter mywindowadapter mwa = new mywindowadapter() "

import java.awt.*;
import java.awt.event.*;
/*<applet code=frame2 width=500 height=500>
</applet>*/
class frame2 extends Frame
{
    frame2(String title)
    {
        super(title);
        mywindowadapter mwa=new mywindowadapter();
        addWindowListener(mwa);     
    }
    public static void main(String ar[])
    {
        frame1 f=new frame1("my frame");
        f.setVisible(true);
        f.setSize(200,100);

     }
    public void paint(Graphics g)
     {
    g.drawString("hello frame",60,70);
     }
}
class mywindowadapter extends WindowAdapter
{

    mywindowadapter()
    {
        frame2 f=new frame2();  
    }
    public void windowClosing(WindowEvent we)
    {
        f.setVisible(false);
        System.exit(0);
    }
} 

以下のコードは、上記のコードを修正したものです。前のコードで生成されたエラーを理解できません。助けてください!!

import java.awt.*;
import java.awt.event.*;
/*<applet code=frame1 width=500 height=500>
</applet>*/
class frame1 extends Frame
 {
    frame1(String title)
    {
        super(title);
        mywindowadapter mwa=new mywindowadapter(this);
        addWindowListener(mwa);     
    }
    public static void main(String ar[])
    {
        frame1 f=new frame1("my frame");
        f.setVisible(true);
        f.setSize(200,100);

    }
   public void paint(Graphics g)
    {
        g.drawString("hello frame",60,70);
    }
}
class mywindowadapter extends WindowAdapter
{
    frame1 f;
    mywindowadapter(frame1 f)
    {
        this.f=f;   
    }
    public void windowClosing(WindowEvent we)
    {
        f.setVisible(false);
        System.exit(0);
    }
}   
4

1 に答える 1

0

のコンストラクターでは、アダプターパターンframe1を利用するアダプターインスタンスを作成しようとしており、引数として渡す参照をアダプティーに委任するためです。このアダプタは、 のリスナー リストに追加するリスナーによって使用されます。frame1frame1

于 2013-03-22T19:44:29.863 に答える