class SimpleDialog extends Dialog {
    TextField field;
    DialogWindow parent;
    Button setButton;    SimpleDialog(Frame dw, String title) {
        super(dw, title, false);
        parent = (DialogWindow)dw;
 
        ...//Create and add components, such as the set button.
 
        //Initialize this dialog to its preferred size.
        pack();
    }    public boolean action(Event event, Object arg) {
        if ( (event.target == setButton)
           | (event.target instanceof TextField)) {
            parent.setText(field.getText());
        }
        field.selectAll();
        hide();
        return true;
    }
}

解决方案 »

  1.   

    Window.addWindowListener(WindowListener l)Dialog继承自Window
      

  2.   

    /*
     * 1.1 version.
     */import java.awt.*;
    import java.awt.event.*;public class DialogWindow extends Frame 
      implements ActionListener {
        boolean inAnApplet = true; //should be private 
        private SimpleDialog dialog;
        private TextArea textArea;
        String newline;    public DialogWindow() {
            textArea = new TextArea(5, 40);
            textArea.setEditable(false);
            add("Center", textArea);
            Button button = new Button("Click to bring up dialog");
    button.addActionListener(this);
            Panel panel = new Panel();
            panel.add(button);
            add("South", panel); addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent e) {
    if (inAnApplet) {
        setVisible(false);
        dispose();
    } else {
        System.exit(0);
    }
        }
    }); newline = System.getProperty("line.separator");
        }    public void actionPerformed(ActionEvent event) {
            if (dialog == null) {
                dialog = new SimpleDialog(this, "A Simple Dialog");
            }
            dialog.setVisible(true);
        }    public void setText(String text) {
            textArea.append(text + newline);
        }    public static void main(String args[]) {
            DialogWindow window = new DialogWindow();
            window.inAnApplet = false;        window.setTitle("DialogWindow Application");
            window.pack();
            window.setVisible(true);
        }
    }class SimpleDialog extends Dialog implements ActionListener {
        TextField field;
        DialogWindow parent;
        Button setButton;    SimpleDialog(Frame dw, String title) {
            super(dw, title, false);
            parent = (DialogWindow)dw;        //Create middle section.
    Panel p1 = new Panel();
            Label label = new Label("Enter random text here:");
            p1.add(label);
            field = new TextField(40);
    field.addActionListener(this);
    p1.add(field);
            add("Center", p1);        //Create bottom row.
            Panel p2 = new Panel();
            p2.setLayout(new FlowLayout(FlowLayout.RIGHT));
            Button b = new Button("Cancel");
    b.addActionListener(this);
            setButton = new Button("Set");
    setButton.addActionListener(this);
            p2.add(b);
            p2.add(setButton);
            add("South", p2); //Initialize this dialog to its preferred size.
    pack();
        }    public void actionPerformed(ActionEvent event) {
    Object source = event.getSource();
            if ( (source == setButton)
               | (source == field)) {
                parent.setText(field.getText());
            }
            field.selectAll();
            setVisible(false);
        }
    }
      

  3.   

    你有Container这个类吗?
    Dialog和JFrame一样,都是要生成容器,再生成组件加入进去的
    我是菜鸟
      

  4.   

    要自己添加Panel和其它组件。