改了一下你的,应该能执行。
推荐用SWING来写,而不是AWT。import java.awt.*;
import java.awt.event.*;
class MyDialog extends Dialog
{
MyDialog()
{super(new Frame(),"对话框");Button A1=new Button("确定");
Button A2=new Button("取消");setModal(true);
setBounds(200,200,200,200);
setLayout(new FlowLayout());
add(A1);
add(A2);
DOING X=new DOING();
A1.addActionListener(X);
A2.addActionListener(X);}private void add(){

addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {System.exit(0);}
});
}public static void main(String args[]){
MyDialog my = new MyDialog();
my.add();
my.setVisible(true);
}
class DOING implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
System.out.println(e.getActionCommand());
//为什么按了按钮不执行?
//我想通过按确定执行,按取消退出怎么写
//窗口的X按钮也无法工作
}}
}