黑马程序员-图形化界面的课堂笔记

------------------- android开发、java培训、期待与您交流! ----------------------
图形化界面的课堂笔记

(1)-----------------------------------------------------------------------------------------------------------
/*
鼠标事件,鼠标滑过窗体中的按钮,事件就发生
*/

import java.awt.*;
import java.awt.event.*;
class MouseAndKeyEvent
{
 private Frame f;
 private Button but;
 MouseAndKeyEvent()//构造函数
 {
  init();
 }
 public void init()
 {
  f=new Frame("My Frame");//新建窗体,并命名
  //对窗体进行基本设置
  f.setBounds(300,100,500,400);
  f.setLayout(new FlowLayout());
  but=new Button("my button");
  f.add(but);//将组件添加到窗体中
  myEvent();//加载窗体上一些事件
  f.setVisible(true);//显示窗体
 }
 private void myEvent()//自定义窗体事件
 {
  f.addWindowListener(new WindowAdapter()//窗口关闭的匿名内部类
  {
   public void windowClosing(WindowEvent e)
   {
    System.exit(0);
   }
  });
  but.addActionListener(new ActionListener()//操作鼠标的动作也可以由其他来完成,例如键盘,运行时则执行此代码
  {
   public void actionPerformed(ActionEvent e)
   {
    System.out.println("action OK");
   }
  });
  but.addMouseListener(new MouseAdapter()//让按钮具备程序的功能
  {
   private int count=1;
   private int clickCount=1;
   public void mouseEntered(MouseEvent e)
   {
    System.out.println("鼠标进人组件"+count++);//鼠标进入按钮区域就输出一次
    //System.exit(0);//关闭窗体
   }
   public void mouseClicked(MouseEvent e)
   {
    System.out.println("点击动作"+clickCount++);
    if(e.getClickCount()==2)
     System.out.println("双击");
   }
  });
 }
 public static void main(String[] args)
 {
  new MouseAndKeyEvent();
 }
}
(2)-----------------------------------------------------------------------------------------------------------
/*
键盘事件,键,组合键
*/

import java.awt.*;
import java.awt.event.*;

class MouseAndKeyEvent
{
 private Frame f;
 private Button but;
 MouseAndKeyEvent()//构造函数
 {
  init();
 }
 public void init()
 {
  f=new Frame("My Frame");//新建窗体,并命名
  //对窗体进行基本设置
  f.setBounds(300,100,500,400);
  f.setLayout(new FlowLayout());
  but=new Button("my button");
  f.add(but);//将组件添加到窗体中
  myEvent();//加载窗体上一些事件
  f.setVisible(true);//显示窗体
 }
 private void myEvent()//自定义窗体事件
 {
  f.addWindowListener(new WindowAdapter()//窗口关闭的匿名内部类
  {
   public void windowClosing(WindowEvent e)
   {
    System.exit(0);
   }
  });
  but.addKeyListener(new KeyAdapter()//添加键盘监听器
  {
   public void keyPressed(KeyEvent e)//覆盖键盘敲击方法
   {
    //System.out.println(e.getKeyChar()+"......"+e.getKeyCode());//输出按下的键,以及键的编码
    //System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"......"+e.getKeyCode());
         //根据键盘输入的键,获取对应的Code编码,再根据编码获得其键名
    //if(e.getKeyCode()==KeyEvent.VK_ESCAPE)//是下边的替代语句,VK_ESCAPE具体的键名,可以再API中查找
    if(e.getKeyCode()==27)//判断若按下ESC键,则退出窗体
     System.exit(0);
    if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER)//如果按下组合键Control+ENTER
     System.exit(0);//退出窗体
   }
  });
 }


 public static void main(String[] args)
 {
  new MouseAndKeyEvent();
 }
}
(3)-----------------------------------------------------------------------------------------------------------
/*
练习:创建文本框,文本区域,使用转到按钮,获取目录
*/

import java.awt.*;
import java.awt.event.*;
import java.io.*;
class  MyWindowDemo
{
 private Frame f;
 private TextField tf;
 private Button but;
 private TextArea ta;
 MyWindowDemo()//构造函数
 {
  init();
 }
 public void init()
 {
  f=new Frame("my window");//创建窗体
  f.setBounds(300,200,500,400);//设置窗体参数
  f.setLayout(new FlowLayout());//设置窗体布局为流式布局
  tf=new TextField(30);//创建文本框
  but=new Button("转到");//创建按钮
  ta=new TextArea(15,40);//设置文本区域
  f.add(tf);//添加文本框
  f.add(but);//添加按钮
  f.add(ta);//添加文本区域

  myEvent();
  f.setVisible(true);//设置为显示

 }
 private void myEvent()
 {
  f.addWindowListener(new WindowAdapter()
  {
   public void windowClosing(WindowEvent e)//关闭窗口
   {
    System.exit(0);
   }
  
  });
  /*
  but.addActionListener(new ActionListener()
  {
   public void actionPerformed(ActionEvent e)
   {
    //将文本框中输入的字符串,按下转向按钮后,转到文本区域中
    String text=tf.getText();
    ta.setText(text);
    tf.setText("");//接收到字符串后将文本框清空
   }
  });
  */
  but.addActionListener(new ActionListener()
  {
   public void actionPerformed(ActionEvent e)
   {
    //列出目录
    ta.setText("");//清空文本区域
    String dirPath=tf.getText();//获取目录的绝对路径
    File dir=new File(dirPath);//创建文件存放目录
    if(dir.exists()&&dir.isDirectory())//判断目录存在,并且是目录
    {
     String[] names=dir.list();//获取目录名字
     for(String name:names)//遍历
     {
      ta.append(name+"\r\n");//将文件名添加到文本区
     }
    }
    
    tf.setText("");//接收到字符串后将文本框清空
   }
  });
 }
 public static void main(String[] args) //主函数
 {
  new MyWindowDemo();
 }
}
(4)-----------------------------------------------------------------------------------------------------------
/*
创建菜单栏
*/

import java.awt.*;
import java.awt.event.*;

class MyMenuDemo
{
 private Frame f;//窗口
 private MenuBar mb;//菜单栏
 private Menu m,m1,m2,subMenu,subMenu1,subMenu2;//菜单
 private MenuItem closeItem,subItem,subItem1,subItem2,subItem3;//菜单条目
 MyMenuDemo()
 {
  init();
 }
 public void init()
 {
  f=new Frame("my window");//创建窗体
  f.setBounds(300,200,500,400);//设置窗体参数
  f.setLayout(new FlowLayout());//设置窗体布局为流式布局
  
  
  mb=new MenuBar();//创建菜单栏

  m=new Menu("文件");//创建菜单
  m1=new Menu("编辑");
  m2=new Menu("工具");

  closeItem=new MenuItem("退出");//创建子菜单
  subMenu=new Menu("子菜单");
  subMenu1=new Menu("子菜单1");
  subMenu2=new Menu("子菜单2");

  subItem=new MenuItem("子条目");//给菜单创建条目
  subItem1=new MenuItem("子条目1");
  subItem2=new MenuItem("子条目2");
  subItem3=new MenuItem("子条目3");

  subMenu.add(subItem);//给菜单创添加条目
  subMenu.add(subItem1);
  subMenu.add(subItem2);
  subMenu.add(subItem3);

  m.add(subMenu);//添加子菜单
  m.add(subMenu1);
  m.add(subMenu2);
  m.add(closeItem);

  mb.add(m);//添加菜单
  mb.add(m1);
  mb.add(m2);

  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();
 }
}
------------------- android开发、java培训、期待与您交流! ----------------------


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值