import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Scanner;
//启动类   //弹窗默认就有关闭事件,我们就不用再写关闭方法
public class main extends JFrame  {
    
        //创建一个初始化窗口的构造器
        public main(){
            //显示窗口
            this.setVisible(true);
            //设置大小
            this.setSize(700,500);
            //关闭窗口事件
            this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

            //把JFrame的东西放到容器中
            Container container=this.getContentPane();
            //使用绝对布局(绝对定位),就是想把按钮放那就用坐标去放就可以了
            container.setLayout(null);
            //按钮
            JButton button=new JButton("点击弹出对话");
            //使用坐标位置去写死按钮的位置,只要把布局设置为:container.setLayout(null);那我们就可以自定义设置按钮的位置了
            button.setBounds(30,30,200,50);//绝对定位这个按钮的位置
            //点击按钮时,弹出一个弹窗,所以需要一个事件
            button.addActionListener(new ActionListener(){//直接new一个系统自带的监听类:ActionListener,这个类中会让你重写一个方法,这个方法的作用就是,你点击绑定这个事件的按钮时,会执行方法中代码
                public void actionPerformed(ActionEvent e){
                    //当点击按钮时,我们就创建弹窗
                    new MyDialogDemo();
                }

            });


            container.add(button);//加入到容器中后,他会相对容器里,根据坐标位置进行自动定位

        }

        public static void main(String[] args) {

            new main();

        }
    }


    //弹窗的窗口:创建弹窗,要继承对应的弹窗类,继承后,也要重写我们需要的抽象方法
    class MyDialogDemo extends JDialog{
        public MyDialogDemo(){
            //设置弹窗可见
            this.setVisible(true);
            //设置弹窗的位置和大小
            this.setBounds(100,100,500,500);
            //设置默认关闭弹窗的操作,但是我们是不需要设置弹窗关闭的代码,因为他默认弹窗是可以关闭的,如果设置了这行代码,当点击弹窗关闭时,主窗口也会关闭
            // this.setDefautCloseOperation(WindowConstants.EXIT_NO_CLOSE);

            //创建容器,把弹窗添加到容器中
            Container con=this.getContentPane();
            //把容器设置为绝对定位,然后就可以自己设置位置了,系统不会自动帮设置
            con.setLayout(null);
            //创建一个文本框并添加内容,并添加到容器中
            con.add(new Label("java"));

        }

    }