A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王舜民 中级黑马   /  2012-8-4 20:51  /  1131 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.awt.*;
import java.awt.event.*;
import java.io.*;
class MyWindowDemo2
{
        private Frame f;
        private TextField tf;
        private Button but;
        private TextArea ta;

        private Dialog d;
        private Label lab;
        private Button okBut;
        MyWindowDemo2()
        {
                init();
        }

        public void init()
        {
                f = new Frame("my Window");
                f.setBounds(300,100,600,500);
                f.setLayout(new FlowLayout());

                tf = new TextField(40);

                but = new Button("转到");

                ta = new TextArea(25,70);

                d = new Dialog(f,"提示信息-self",true);
                d.setBounds(400,200,250,170);
                d.setLayout(new FlowLayout());
               
                lab = new Label();
                okBut = new Button("确定");

                d.add(lab);
                d.add(okBut);



                f.add(tf);
                f.add(but);
                f.add(ta);
                myEvent();
                f.setVisible(true);
        }

        private void myEvent()
        {
                okBut.addActionListener(new ActionListener()
                {
                        public void actionPerformed(ActionEvent e)
                        {
                                d.setVisible(false); ;//window窗体就隐藏了
                        }
                });

                d.addWindowListener(new WindowAdapter()
                {
                        public void windowClosing(WindowEvent e)
                        {
                                d.setVisible(false);
                        }
                });
////////////////////////////////////////////////
                tf.addKeyListener(new KeyAdapter()
                {
                        public void keyPressed(KeyEvent e)
                        {
                                if(e.getKeyCode()==KeyEvent.VK_ENTER)
                                {
                                        showDir();
                                }
                        }
                });

                but.addActionListener(new ActionListener()
                {
                        public void actionPerformed(ActionEvent e)
                        {
                                showDir();
                        }
                });
                f.addWindowListener(new WindowAdapter()
                {
                        public void windowClosing(WindowEvent e)
                        {
                                System.exit(0);//我想问一下这边为什么是0?我用1,2也可以关闭窗口啊?
                        }
                });
        }

        private void showDir()
        {
                String dirPath = tf.getText();

                                File dir = new File(dirPath);

                                if( dir.exists() && dir.isDirectory())
                                {
                                        ta.setText("");
                                        String[] names = dir.list();
                                        for(String name: names)
                                        {
                                                ta.append(name+"\r\n");
                                        }
                                }
                                else
                                {
                                        String info = "您输入的信息:"+dirPath+"是错误的,请重新输入!";
                                        lab.setText(info);
                                        d.setVisible(true);
                                        //tf.setText("你错误了!");
                                }
        }



        public static void main(String[] args)
        {
                new MyWindowDemo2();
        }
}

评分

参与人数 1技术分 +1 收起 理由
包晗 + 1

查看全部评分

9 个回复

倒序浏览
正常退出,一般都写0
非正常退出,一般都写上-1(jvm经常这么干)

点评

3q  发表于 2012-8-4 20:58

评分

参与人数 1技术分 +1 收起 理由
包晗 + 1

查看全部评分

回复 使用道具 举报
列出指定目录内容,就像操作系统一样打文件名称就可以转到列出该目录下文件,
思路就是先把这窗体,控制按键,对话框 写出来,再把对应的激发的代码写出,再通过一个遍历的函数实现显示目录。
求大神教一下怎么想思路!
回复 使用道具 举报
public static void exit(int status)终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。
该方法调用 Runtime 类中的 exit 方法。该方法永远不会正常返回。

调用 System.exit(n) 实际上等效于调用:

Runtime.getRuntime().exit(n)

参数:
status - 退出状态。

没事查查API看下。{:soso_e100:}
回复 使用道具 举报
黑马-王言龙 发表于 2012-8-4 20:56
public static void exit(int status)终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的 ...

我写了-1一样退出。而且api怎么查的,我只会比如说这明显是awt的我就到awt下面查。。:L
回复 使用道具 举报
王舜民 发表于 2012-8-4 20:56
列出指定目录内容,就像操作系统一样打文件名称就可以转到列出该目录下文件,
思路就是先把这窗体,控制按 ...

学习前人的经验,积累到一定数量,固定的东西才有思路,最后才能迁移思路,我是这样理解的。

点评

恩。我这样想有错吗?  发表于 2012-8-4 21:07
回复 使用道具 举报
王舜民 发表于 2012-8-4 21:02
我写了-1一样退出。而且api怎么查的,我只会比如说这明显是awt的我就到awt下面查。。 ...

有索引
回复 使用道具 举报
黑马-王言龙 发表于 2012-8-4 21:09
有索引

我看到了。谢谢!原来用索引好爽。:lol
回复 使用道具 举报
王舜民 发表于 2012-8-4 20:56
列出指定目录内容,就像操作系统一样打文件名称就可以转到列出该目录下文件,
思路就是先把这窗体,控制按 ...

思路对了,可以写了
回复 使用道具 举报
国际惯例 0 代表正常退出
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马