黑马程序员--2015.6.29java基础笔记---GUI总结

来源:互联网 发布:json格式转换工具 编辑:程序博客网 时间:2024/05/21 14:51

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

1.GUI用户图形接口

    和用户进行交互的方式:DOS,GUI
    java为GUI提供的工具包:
            a.java.Awt
                    抽象窗口工具包,调用本地系统方法实现功能。属于重量级控件
            b.javax.Swing
                    完全由java实现的,增强移植性,属于轻量级控件。
            Container:容器,该组件可通过add添加其他组件
2.布局管理器:就是管理组件的排放方式

3.事件监听机制:
            a.事件源:就是awt包或者Swing包中的图形界面组件
            b.事件:每一个事件源都有自己特有对应事件和共性事件
            c.监听器:将可触发某一事件动作(不止一个动作)都已经封装到了监听器中。
            d.处理方式:自定义
            
4.//创建一个java视图的小例子

import java.awt.*;import java.awt.event.*;class AwtDemo{    public static void main(String[] args)    {            Frame f = new Frame("my java");            f.setLocation(400,200);            f.setSize(500,400);            f.setLayout(new FlowLayout());            Button b = new Button("push me");            f.add(b);            f.setVisible(true);            //对窗体进行监听            f.addWindowListener(new WindowAdapter()            {                //窗体关闭                public void windowClosing(WindowEvent e)                {                    System.out.println("窗口关闭");                        System.exit(1);                }                });            System.out.println("java GUI 示例");    }    }


5.窗体,按钮都具备监听事件
/*    创建一个能关闭的窗体。        在构造函数时,就初始化。        添加Button,使其也具备退出功能。*/import java.awt.*;import java.awt.event.*;class FrameDemo{    private Frame f;    private Button b;        FrameDemo()    {        init();        }    //初始化窗体    private void init()    {        f = new Frame("my Frame");        //设置位置,和大小        f.setBounds(400, 200, 500,400);        f.setLayout(new FlowLayout());          b = new Button("push me!");        f.add(b);        myEvent();        f.setVisible(true);    }        //事件    private void myEvent()    {        //点击窗体关闭按钮,退出程序        f.addWindowListener(new WindowAdapter(){                        public void windowClosing(WindowEvent e)            {                System.out.println("窗体关闭程序");                    System.exit(0);            }            });        //点击按钮,让其具备退出的程序的功能。        b.addActionListener(new ActionListener(){                        public void actionPerformed(ActionEvent e)            {                System.out.println("按钮关闭程序");                    System.exit(0);                }        });            }        public static void main(String[] args)    {        FrameDemo f = new FrameDemo();    }}    


            
6.模拟windows,打开“计算机”页面。
/*    模拟windows,打开“计算机”页面。    可以通过地址栏,输入地址,找到指定的文件列表。        若是地址错误,则弹出一个dialog对话框。        若是地址正确,则将此目录下的文件和目录输出*/import java.awt.*;import java.awt.event.*;import java.io.*;class MyWindowDemo{    private Frame f;    private Button but;    private TextField tf;    private TextArea ta;    private Dialog d;    private Label lab;    private Button okBut;    MyWindowDemo()    {        init();        }        //窗口初始化    private void init()    {        f = new Frame("my window");            f.setBounds(300,100,600,500);        f.setLayout(new FlowLayout());        tf = new TextField(60);        but = new Button("转到");        ta = new TextArea(25,70);                  //不操作此窗体(对话框),f则无法执行        d = new Dialog(f,"提示信息_self",true);        d.setBounds(400,200,240,150);        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()    {        //按钮监听        but.addActionListener(new ActionListener(){                            public void actionPerformed(ActionEvent e)            {                textFiled_method();            }        });                    //单行文本组件监听器        tf.addKeyListener(new KeyAdapter(){                        //当按下回车键时,进行判断。            public void keyPressed(KeyEvent e)            {                if(e.getKeyCode()==KeyEvent.VK_ENTER)                {                        textFiled_method();                }            }                    });                //关闭程序        f.addWindowListener(new WindowAdapter(){                        public void windowClosing(WindowEvent e)            {                System.exit(0);            }            });                //关闭对话框        d.addWindowListener(new WindowAdapter(){                        public void windowClosing(WindowEvent e)            {                d.setVisible(false);            }            });                //按下对话框确定按钮,则隐藏对话框        okBut.addActionListener(new ActionListener(){                            public void actionPerformed(ActionEvent e)            {                d.setVisible(false);            }        });                    //弹出对话框后,按下回车键,则隐藏对话框        okBut.addKeyListener(new KeyAdapter(){                        public void keyPressed(KeyEvent e)            {                if(e.getKeyCode()==KeyEvent.VK_ENTER)                {                        d.setVisible(false);                }            }                    });            }        /*按下按钮触发的事件        获取textField的内容,并判断是否是目录。            是:列出目录名,并添加到textArea中            否:显示对话框    */    private void textFiled_method()    {        String path = tf.getText();        File f = new File(path);        if(f.exists() && f.isDirectory())        {            ta.setText("");            String[] names = f.list();            for(String name:names)            {                ta.append(name+"\r\n");                }        } else {            String info = "您输入的信息"+path+"错误,请重输";            lab.setText(info);            d.setVisible(true);        }        }            public static void main(String[] args)    {        new MyWindowDemo();    }}    


7.设置一个窗口,其中包含,菜单栏
/*    设置一个窗口    其中包含,菜单栏,即:            文件(f)            子菜单                子条目            退出    */import java.awt.*;import java.awt.event.*;class MyMenuDemo{    private Frame f;    private Menu m,subMenu;    private MenuBar mb;    private MenuItem closeItem,subItem;    MyMenuDemo()    {        init();        }        //窗口初始化    private void init()    {        f = new Frame("my window");            f.setBounds(300,100,600,500);        f.setLayout(new FlowLayout());        mb = new MenuBar();        m = new Menu("文件(F)");        subMenu = new Menu("子菜单");        closeItem = new MenuItem("退出");        subItem = new MenuItem("子条目");        mb.add(m);        subMenu.add(subItem);        m.add(subMenu);        m.add(closeItem);        f.setMenuBar(mb);                myEvent();        f.setVisible(true);    }        //监听事件    private void myEvent()    {            //关闭程序        f.addWindowListener(new WindowAdapter(){                        public void windowClosing(WindowEvent e)            {                System.exit(0);            }            });                closeItem.addActionListener(new ActionListener(){                            public void actionPerformed(ActionEvent e)            {                    System.exit(0);            }        });    }            public static void main(String[] args)    {        new MyMenuDemo();    }}                                


0 0
原创粉丝点击