import java.awt.*;
import java.awt.event.*;
public class Test extends Frame implements ActionListener {
  Frame win1=new Frame("对话框的父窗口");
  TextArea ta1=new TextArea("显示对话框的有关信息");
  Button bt1=new Button("显示对话框");
  Test() {
    win1.addWindowListener(new win1());
    win1.add(bt1,BorderLayout.NORTH);
    bt1.addActionListener(this);
    win1.add(ta1,BorderLayout.CENTER);
    win1.setSize(400,200);
    win1.setVisible(true);
  }
  public static void main(String[] args) {
    new Test();
  }
  public void actionPerformed(ActionEvent e) {
    if(e.getSource()==bt1) {
      Mydialog dlg=new Mydialog(this,"自定义对话框",true);
      dlg.setVisible(true);
    }
  }
  class win1 extends WindowAdapter {
    public void windowClosing(WindowEvent e) {
      System.exit(0);
    }
  }
  class Mydialog extends Dialog implements ActionListener {
    Button bt2=new Button("OK");
    Mydialog(Dialog owner,String title,boolean modal) {
      super(owner,title,modal);
      setTitle("自定义对话框");
      setSize(200,140);
      setLayout(new FlowLayout(FlowLayout.CENTER));
      add(bt2);
      bt2.addActionListener(this);
  }
    public void actionPerformed(ActionEvent e) {
      if(e.getSource()==bt2) {
        ta1.append("你打开了对话框\n");
        dispose();
      }
    }
  }
}编译结果:Test.java:20: 找不到符号
符号: 构造函数 Mydialog(Test,java.lang.String,boolean)
位置: 类 Test.Mydialog
      Mydialog dlg=new Mydialog(this,"自定义对话框",true);
                   ^
1 错误

解决方案 »

  1.   

    package Practice;import java.awt.*;
    import java.awt.event.*;
    public class Test extends Frame implements ActionListener {
      Frame win1=new Frame("对话框的父窗口");
      TextArea ta1=new TextArea("显示对话框的有关信息");
      Button bt1=new Button("显示对话框");
      Test() {
        win1.addWindowListener(new win1());
        win1.add(bt1,BorderLayout.NORTH);
        bt1.addActionListener(this);
        win1.add(ta1,BorderLayout.CENTER);
        win1.setSize(400,200);
        win1.setVisible(true);
      }
      public static void main(String[] args) {
        new Test();
      }
      public void actionPerformed(ActionEvent e) {
        if(e.getSource()==bt1) {
          Mydialog dlg=new Mydialog(null,"自定义对话框",true);//第一個參數設置dialog的擁有者,這裡樓主寫的this,表示一個監聽吧,應該是!這裡也可以不設他的擁有者,所以只要是null就ok了
          dlg.setVisible(true);
        }
      }
      class win1 extends WindowAdapter {
        public void windowClosing(WindowEvent e) {
          System.exit(0);
        }
      }
      class Mydialog extends Dialog implements ActionListener {
        Button bt2=new Button("OK");
        Mydialog(Dialog owner,String title,boolean modal) {
          super(owner,title,modal);
          setTitle("自定义对话框");
          setSize(200,140);
          setLayout(new FlowLayout(FlowLayout.CENTER));
          add(bt2);
          bt2.addActionListener(this);
      }
        public void actionPerformed(ActionEvent e) {
          if(e.getSource()==bt2) {
            ta1.append("你打开了对话框\n");
            dispose();
          }
        }
      }
    }
      

  2.   

    import java.awt.*;
    import java.awt.event.*;
    public class Test extends Frame implements ActionListener {
      Frame win1=new Frame("对话框的父窗口");
      TextArea ta1=new TextArea("显示对话框的有关信息");
      Button bt1=new Button("显示对话框");
      Test() {
        win1.addWindowListener(new win1());
        win1.add(bt1,BorderLayout.NORTH);
        bt1.addActionListener(this);
        win1.add(ta1,BorderLayout.CENTER);
        win1.setSize(400,200);
        win1.setVisible(true);
      }
      public static void main(String[] args) {
        new Test();
      }
      public void actionPerformed(ActionEvent e) {
        if(e.getSource()==bt1) {//这里的第一个参数类型不正确
          Mydialog dlg=new Mydialog(this,"自定义对话框",true);
          dlg.setVisible(true);
        }
      }
      class win1 extends WindowAdapter {
        public void windowClosing(WindowEvent e) {
          System.exit(0);
        }
      }
      class Mydialog extends Dialog implements ActionListener {
        Button bt2=new Button("OK");
        Mydialog(Dialog owner,String title,boolean modal) {
          super(owner,title,modal);
          setTitle("自定义对话框");
          setSize(200,140);
          setLayout(new FlowLayout(FlowLayout.CENTER));
          add(bt2);
          bt2.addActionListener(this);
      }
        public void actionPerformed(ActionEvent e) {
          if(e.getSource()==bt2) {
            ta1.append("你打开了对话框\n");
            dispose();
          }
        }
      }
    }
      

  3.   

    问题解决了import java.awt.*;
    import java.awt.event.*;
    public class Test extends Frame implements ActionListener {
      Frame win1=new Frame("对话框的父窗口");
      TextArea ta1=new TextArea("显示对话框的有关信息");
      Button bt1=new Button("显示对话框");
      Test() {
        win1.addWindowListener(new win1());
        win1.add(bt1,BorderLayout.NORTH);
        bt1.addActionListener(this);
        win1.add(ta1,BorderLayout.CENTER);
        win1.setSize(400,200);
        win1.setVisible(true);
      }
      public static void main(String[] args) {
        new Test();
      }
      public void actionPerformed(ActionEvent e) {
        if(e.getSource()==bt1) {
          dialog dlg=new dialog(this,true);
          dlg.setVisible(true);
        }
      }
      class win1 extends WindowAdapter {
        public void windowClosing(WindowEvent e) {
          System.exit(0);
        }
      }
      class dialog extends Dialog implements ActionListener {
        Button bt2=new Button("OK");
        dialog(Frame owner,boolean modal) {
          super(owner,modal);
          setTitle("自定义对话框");
          setSize(200,140);
          setLayout(new FlowLayout(FlowLayout.CENTER));
          add(bt2);
          bt2.addActionListener(this);
      }
        public void actionPerformed(ActionEvent e) {
          if(e.getSource()==bt2) {
            ta1.append("你打开了对话框\n");
            dispose();
          }
        }
      }
    }  结帖给分