问答题

本程序中,主窗口有一个“打开对话框”按钮和一个文本域,单击“打开对话框”按钮后会弹出一个对话框,对话框上有两个按钮“Yes”和“No”,单击对话框上的“Yes”或“No”按钮后返回主窗口,并在右侧文本域中显示刚才所单击的按钮信息,如图所示。


import java.awt.event.*;
import java.awt.*;
class MyDialog ______ implements ActionListener
{ static final int YES=1,NO=0;
int message=-1; Button yes,no;
MyDialog(Frame f, String s,boolean b)
{ super(f,s,b);
yes=new Button ("Yes"); yes.addActionListener(this);
no=new Button ("No"); no.addActionListener (this);
setLayout (new FlowLayout ());
add(yes); add(no);
setBounds(60,60,100,100);
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ message=-1;setVisible(false);
}
}
);
}
Dublic void actionPerformed(ActionEvent e)
{ if(e.getSource()==yes)
{ message=YES;
setVisible(false);
}
else if(e.getSource()==no)
{ message=NO;
setVisible(false);
}
}
public int getMessage()
{ return message;
}
class Dwindow extends Frame implements ActionListener
{ TextArea text; Button button; MyDialog dialog;
Dwindow (String s)
{ super(s);
text=new TextArea (5, 22); button=new Button ("打开对话框");
button, addActionListener (this);
setLayout(new FlowLayout());
add(button); add(text);
dialog=new MyDialog (this, "Dialog", true);
setBounds(60,60,300,300); setVisible(true);
validate ( );
addWindowListener (new WindowAdapter ()
{ public void windowClosing(WindowEvent e)
{ System.exit (0);
}
}
);
}
public void actionPerformed(ActionEvent e)
{ if (e.getSource () ==button)
{ ______;
if (dialog. getMessage () ==MyDialog. YES)
{ text.append("\n 你单击了对话框的yes按钮");
}
else if (dialog. getMessage ( ) ==MyDialog. NO)
{ text .append ("\n你单击了对话框的No按钮");
}
}
}
}
public class exam_87
{ public static void main(String args[])
{ new Dwindow("exam_87");
}
}

【参考答案】

第1处:extends Dialog
第2处:dialog.setVisible(true)