黑马程序员技术交流社区

标题: gui问题,没理解,求解答 [打印本页]

作者: 王舜民    时间: 2012-8-4 20:51
标题: gui问题,没理解,求解答
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();
        }
}

作者: 黑马-王言龙    时间: 2012-8-4 20:54
正常退出,一般都写0
非正常退出,一般都写上-1(jvm经常这么干)
作者: 王舜民    时间: 2012-8-4 20:56
列出指定目录内容,就像操作系统一样打文件名称就可以转到列出该目录下文件,
思路就是先把这窗体,控制按键,对话框 写出来,再把对应的激发的代码写出,再通过一个遍历的函数实现显示目录。
求大神教一下怎么想思路!
作者: 黑马-王言龙    时间: 2012-8-4 20:56
public static void exit(int status)终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。
该方法调用 Runtime 类中的 exit 方法。该方法永远不会正常返回。

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

Runtime.getRuntime().exit(n)

参数:
status - 退出状态。

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

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

学习前人的经验,积累到一定数量,固定的东西才有思路,最后才能迁移思路,我是这样理解的。
作者: 黑马-王言龙    时间: 2012-8-4 21:09
王舜民 发表于 2012-8-4 21:02
我写了-1一样退出。而且api怎么查的,我只会比如说这明显是awt的我就到awt下面查。。 ...

有索引

作者: 王舜民    时间: 2012-8-4 21:13
黑马-王言龙 发表于 2012-8-4 21:09
有索引

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

思路对了,可以写了
作者: 樊占江    时间: 2012-8-4 21:22
国际惯例 0 代表正常退出




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2