在jdialog上方了一个panel
这个panel上有一个按钮
当这个按钮按下时关闭这个jdialog。
这个jdialog是模式显示出来的。

解决方案 »

  1.   

    我的意思是怎么作才能实现,当panel中的按钮按下时将jdialog关闭。
      

  2.   

    刚才用JB2006拖了一个:import java.awt.*;
    import javax.swing.*;
    import java.awt.Rectangle;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    public class Dialog1
        extends JDialog
    {
        JPanel panel1=new JPanel();
        JButton jButton1=new JButton();
        public Dialog1(Frame owner,String title,boolean modal)
        {
            super(owner,title,modal);
            try
            {
                setDefaultCloseOperation(DISPOSE_ON_CLOSE);
                jbInit();
                pack();
            }
            catch(Exception exception)
            {
                exception.printStackTrace();
            }
            this.setVisible(true);
        }    public Dialog1()
        {
            this(new Frame(),"Dialog1",false);
        }    private void jbInit() throws Exception
        {
            this.setLocation(200,100);
            this.setSize(600,480);
            panel1.setLayout(null);
            jButton1.setBounds(new Rectangle(144,230,110,31));
            jButton1.setMnemonic('O');
            jButton1.setText("确定(O)");
            jButton1.addActionListener(new Dialog1_jButton1_actionAdapter(this));
            getContentPane().add(panel1);
            panel1.add(jButton1);    }    public void jButton1_actionPerformed(ActionEvent e)
        {
            this.dispose();
        }
    }
    class Dialog1_jButton1_actionAdapter
        implements ActionListener
    {
        private Dialog1 adaptee;
        Dialog1_jButton1_actionAdapter(Dialog1 adaptee)
        {
            this.adaptee=adaptee;
        }    public void actionPerformed(ActionEvent e)
        {
            adaptee.jButton1_actionPerformed(e);
        }
    }
      

  3.   

    加了个main函数,可运行
    import java.awt.*;
    import javax.swing.*;
    import java.awt.Rectangle;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    public class Dialog1
        extends JDialog
    {
        JPanel panel1=new JPanel();
        JButton jButton1=new JButton();
        public Dialog1(Frame owner,String title,boolean modal)
        {
            super(owner,title,modal);
            try
            {
                setDefaultCloseOperation(DISPOSE_ON_CLOSE);
                jbInit();
                pack();
            }
            catch(Exception exception)
            {
                exception.printStackTrace();
            }
            this.setVisible(true);
        }    public Dialog1()
        {
            this(new Frame(),"Dialog1",false);
        }    private void jbInit() throws Exception
        {
            this.setLocation(200,100);
            this.setSize(600,480);
            panel1.setLayout(null);
            jButton1.setBounds(new Rectangle(144,230,110,31));
            jButton1.setMnemonic('O');
            jButton1.setText("确定(O)");
            jButton1.addActionListener(new Dialog1_jButton1_actionAdapter(this));
            getContentPane().add(panel1);
            panel1.add(jButton1);    }    public void jButton1_actionPerformed(ActionEvent e)
        {
            this.dispose();
        }
        
        public static void main(String[] args)
        {
            new Dialog1();
        }
    }
    class Dialog1_jButton1_actionAdapter
        implements ActionListener
    {
        private Dialog1 adaptee;
        Dialog1_jButton1_actionAdapter(Dialog1 adaptee)
        {
            this.adaptee=adaptee;
        }    public void actionPerformed(ActionEvent e)
        {
            adaptee.jButton1_actionPerformed(e);
        }
    }