import java.awt.*;
import java.awt.event.*;public class DialogTest extends Frame {
    private Dialog d;
    
    private Dialog sd;
    public DialogTest() {
        Button b;
        setBounds(100, 100, 600, 400);
        b = new Button("NEW");
        d = new Dialog(this, "NEW"); //无模式的 Dialog
        d.setBounds(150, 150, 300, 200);
        b.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                d.setVisible(true);
            }
        });
        d.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                d.setVisible(false);
            }
        });
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        add("South", b);
        
        Button ko;
        ko = new Button("ohayo");
        sd = new Dialog(d,"ohayo");
        sd.setBounds(50,50,100,100);
        ko.addActionListener(new ActionListener() {
            public void actionPerormed(ActionEvent e) {
                sd.setVisible(true);
            }            public void actionPerformed(ActionEvent e) {}
        });
        sd.add("South",d);
        setVisible(true);
    }    public static void main(String[] args) {
        new DialogTest();
    }
}为什么 add 不上了?

解决方案 »

  1.   

    应该调用一下layout或者repait等函数吧
      

  2.   


    import java.awt.*; 
    import java.awt.event.*; public class DialogTest extends Frame { 
        private Dialog d; 
        private Dialog sd;
        
        public DialogTest() { 
            Button b; 
            setBounds(100, 100, 600, 400); 
            b = new Button("NEW"); 
            d = new Dialog(this, "NEW"); //无模式的 Dialog 
            d.setBounds(150, 150, 300, 200); 
            b.addActionListener(new ActionListener() { 
                public void actionPerformed(ActionEvent e) { 
                    d.setVisible(true); 
                } 
            }); 
            d.addWindowListener(new WindowAdapter() { 
                public void windowClosing(WindowEvent e) { 
                    d.setVisible(false); 
                } 
            }); 
            addWindowListener(new WindowAdapter() { 
                public void windowClosing(WindowEvent e) { 
                    System.exit(0); 
                } 
            }); 
            add("South", b); 
             
            Button ko; 
            ko = new Button("ohayo");
            
            sd = new Dialog(d,"ohayo"); 
            sd.setBounds(50,50,100,100);
            
            //需要添加ko的监听事件
            ko.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) {
    sd.setVisible(true);//显示第二个Dialog,既sd

            });
            sd.addWindowListener(new WindowAdapter() { 
                public void windowClosing(WindowEvent e) { 
                    sd.setVisible(false); 
                } 
            }); 
            //KO按钮是添加到第一个Dialog里的
            d.add("South",ko); 
            setVisible(true); 
        }     public static void main(String[] args) { 
            new DialogTest(); 
        } 

    按钮放置的层次弄混了,所以即便添加了按钮也不会有显示的!