黑马程序员九、GUI

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

1.Awt与Swing

  java.Awt;需要调用本地系统方法实现功能。属于重量级控件。

  javax.Swing:是在AWT的基础上建立的一套图形界面系统,其中提供了更多的组件,而且完全有java实习。争强了移植性,属轻量级控件。

2.创建图形化界面

    1).创建frame窗体;  

    2).对窗体进行基本设置;比如大小、位置、布局等。

    3).定义组件;   

    4).将组件通过窗体的add方法添加到窗体中。

    5).让窗体显示,通过setVisible(true)

import java.awt.Frame;

importjava.awt.event.WindowAdapter;

importjava.awt.event.WindowEvent;

public class FrameDemo {

    private Frame f;

     FrameDemo(){

       init();

    }

    public void init(){

       f = new Frame("窗体");

       f.setSize(500,400);

       f.setLocation(300,200);

       myEvent();

       f.setVisible(true);

    }

    private void myEvent(){

       f.addWindowListener(new WindowAdapter(){

           public void windowClosing(WindowEvent e){

              System.exit(0);

           }

       });

    }

    public static void main(String[] args){

       new FrameDemo();

    }

3. 事件监听机制的特点:

   1).事件源:就是awt包或者Swing包中的那些图形界面组件。

   2).事件:每个事件源都有自己特有的对应事件和共性事件。

   3).将可以除法某一个事件动作都已经封装到了监听器中。

   4).事件处理

 事件监听机制流程图

      外部动作

            |

            |2.有监听器所监听的动作作于事件源上

           \/

      事件源(组件)——3.产生事件对象———>事件对象——————

           /\                                                                                           |4.将事件对象传给事件处理方式

            |                                                                                           \/

            |                                                                                       监听器

            —————1.将监听器注册到事件源————— 监听引发事件的动作(事件处理方式)

import java.awt.*;

import java.awt.event.*;

public classAwtGui {

   public static void main(String[] args) {

//窗体的基本设置

       Frame f = new Frame("my awt");

       f.setSize(400, 300);

       f.setLocation(300,200);

       f.setLayout(new FlowLayout());

       

       Button but = new Button("按钮");

       f.add(but);

       f.addWindowListener(new WindowAdapter(){

          public voidwindowClosing(WindowEvent e)

          {

             System.exit(0);

          }

       });

       //按钮点击事件

       but.addActionListener(new ActionListener(){

         public voidactionPerformed(ActionEvent e)

         {

            System.out.println("hello java");

         }

       });

       //鼠标进入事件

       but.addMouseListener(new MouseAdapter(){

          private intcount= 1;

          private intclickCount= 1;

          public voidmouseEntered(MouseEvent e)

          {

             System.out.println("鼠标进入到该组件"+count++);

          }

         //比按钮先执行

          public voidmouseClicked(MouseEvent e)

          {

             if(e.getClickCount()==2)

             System.out.println("点击动作"+clickCount++);

          }

       });

      //键盘监听

       but.addKeyListener(new KeyAdapter(){

          public voidkeyPressed(KeyEvent e)

          {

             System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"..."+e.getKeyCode());

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

                 System.out.println("ctrl+enter is run");

          }

       });

       tf.addKeyListener(new KeyAdapter(){

          public voidkeyPressed(KeyEvent e)

          {

             int code = e.getKeyCode();

             if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9)){

                 System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"...非法输入");

             e.consume();//非法则无法输入

             }

          }

       });

       f.setVisible(true);

   }

}


4. 菜单栏的制作

import java.awt.FlowLayout;

import java.awt.Frame;

import java.awt.Menu;

import java.awt.MenuBar;

import java.awt.MenuItem;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

 

public classMyMenuDemo {

    

   private Frame f;

   private MenuBar mb;

   private Menu m,subMenu;

   private MenuItem closeItem,subItem;

   MyMenuDemo(){

      init();

   }

   public void init(){

      f = new Frame("my window");

      f.setBounds(300,100,600,500);

      f.setLayout(new FlowLayout());

     

      mb = new MenuBar();

      m = new Menu("文件");

      subMenu = new Menu("子菜单");

      subItem = new MenuItem("子条目");

      closeItem = new MenuItem("退出");

      subMenu.add(subItem);

     

      m.add(subMenu);

      m.add(closeItem);

      mb.add(m);

      f.setMenuBar(mb);

      myEvent();

      f.setVisible(true);

   }

   private void myEvent(){

       //closeItem子条目进行监听

      closeItem.addActionListener(new ActionListener(){

         public voidactionPerformed(ActionEvent e){

            System.exit(0);

         }

      });

      f.addWindowListener(new WindowAdapter(){

         public voidwindowClosing(WindowEvent e){

            System.exit(0);

         }

      });

   }

   public static void main(String[] args) {

       new MyMenuDemo();

   }

}

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

详细请查看:http://edu.csdn.net/heima


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值