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

------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();
    }
}                                


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值