黑马程序员_Dialog对话框

---------------------- android培训java培训、期待与您交流! ----------------------

今天看视频做了个小练习,感觉挺有意思的,跟大家分享一下,我用到的java方法和类是java.awt.*;中的,基本的练习要求是创建一个窗体,包含一行文本框,一个叫做“转到”的按钮,和一大片文本域。功能要求实现在文本框中输入正确的且存在的路径,否则弹出提示窗口报错,点击“转到”按钮,则在文本域中显示对应路径下的文件目录。

首先我们应当先创建所有用到的组件,并进行初始化,然后添加监听器,定义相应的触发事件。

Dialog类似于Frame,也需要进行相应的设置,且Dialog也是一个容器类,使用时需要将其他的组件添加进来,Dialog类提供的构造方法很多,其中有传入自己对象,或者是传入Frame对象,例如Dialog(Frame  owner,String  title, Boolean modal),值得注意的是modal,它有true和false两个值,当为true时,对话框必须被操作完成才能操作其它组件,false则反之。不多说了,具体代码如下:

import java.awt.*;

import java.awt.event.*;

import java.io.*;

public classDialogDemo {

    publicstaticvoidmain(String []args)

    {

     new DialogDemo1();

    }

}

class DialogDemo1

{

    private Frame fr;

    private TextField tf;

    private Button but1;

    private TextArea ta;

    private Dialog dl;

    private Button but2;

    private Label lb;

    DialogDemo1()

    {

        init();

    }

    public void init()

    {

        fr=new Frame("我的窗体");

        fr.setLayout(new FlowLayout());

        fr.setBounds(300,100,700,600);

        tf=new TextField(30);

        fr.add(tf);

        but1=new Button("转到");

        fr.add(but1);

        ta=new TextArea(30,70);

        fr.add(ta);

        dl=new Dialog(fr,"提示信息",true);

        dl.setBounds(300,100,300,200);

        dl.setLayout(new FlowLayout());

        but2=new Button("确定");

        lb=new Label();

        dl.add(lb);

        dl.add(but2);

        fr.setVisible(true);

        myEvent();

    }

    private void myEvent()

    {

        tf.addKeyListener(new KeyAdapter()

        {

            public void keyPressed(KeyEvent e)

            {

               if(e.getKeyCode()==KeyEvent.VK_ENTER)

               {

                showDir();

               }

            }

        });

        dl.addWindowListener(new WindowAdapter()

        {

            public voidwindowClosing(WindowEvent e)

            {

                dl.setVisible(false);

            }

        });

        but2.addActionListener(new ActionListener()

        {

            public voidactionPerformed(ActionEvent e)

            {

                dl.setVisible(false);

            }

        });

        fr.addWindowListener(new WindowAdapter()

        {

            public voidwindowClosing(WindowEvent e)

            {

                System.exit(0);

            }

        });

        but1.addActionListener(new ActionListener()

        {

            public voidactionPerformed(ActionEvent e)

            {

                showDir();

            }

               

           

        });

    }

    public void showDir()

    {

        Stringdirpath=tf.getText();

        Filedir=newFile(dirpath);

        if(dir.exists() &&dir.isDirectory())

        {

            ta.setText("");

            String[]names=dir.list();

            for(String name:names)

            {

                ta.append(name+"\r\n");

            }

        }

        else

        {

            Stringtext="您输入的"+dirpath+"有误";

            lb.setText(text);

            dl.setVisible(true);

        }

       

    }

}

其实Dialog类和Frame类相似,只是实现的功能不同,在学习了Frame类之后,Dialog学习起来就相对轻松了。

---------------------- android培训java培训、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值