当前位置:网站首页 > Java基础 > 正文

java基础事件



  今天讲一下JavaGUI中的事件处理。

  图形用户界面系统借助事件驱动模式处理所有用户交互。用户执行一个操作,如移动鼠标,单击鼠标按钮,按下键盘上的某个键,释放键盘键等。所有这些操作都将生成某种类型的事件。在Java中,每一个执行的操作都是一个事件。

  处理这些事件的方式取决于应用程序的类型。一些事件由“抽象窗口操作工具包(AWT)”或者执行这些应用程序的环境来处理。如浏览器或者Applet小程序。有一些事件需要调用此处理程序。

  监听器

  事件处理模型是一个过程,即应用程序允许使用称为监听器的对象注册到处理程序的过程。当发生适当的事件时,将自动通知这些注册过监听器,某个动作被触发了。

image.png

  事件监听程序即监听器监听由对象发生的特定事件。这个过程将依次调用处理事件的方法,即事件处理程序。每一个事件监听程序将提供了处理这些事件的方法。

  简单来说,监听器是个接口,如果你想监听组件的某一动作,比如鼠标点击,按钮按下这些事件,你就要实现鼠标监听器,或者按钮监听器等这样的接口,然后再把这个实现了接口的对象注册到要监听的组件上。

  对按钮事件的处理

  只要鼠标在某个按钮上单击,就会生成一个事件。

  看下面的例子

  Buttonbutton=newButton("确定");

  button.addActionListener(newActionListener(){

  publicvoidactionPerformed(ActionEvente){

  JOptionPane.showMessageDialog(null,"你点击了按钮");

  }

  });

  Button是确定按钮,我们调用Button的addActionListener方法给它添加了一个点击事件监听器。

  AddActionListener方法接受一个参数,这个参数是一个ActionListener对象。由于ActionListener是个接口,因为要实现这个接口的类作为参数。ActionListener接口只有一个方法需要实现,actionPerformed(ActionEvente)这个方法将在按钮按下的时候发生。将传递一个事件对象ActionEvent。

  我们在这里用到了匿名类的写法,即不使用对象引用,直接实例化一个类对象来实现ActionListener接口。一般实现事件处理用匿名类比较方便,大家可以熟悉一下这样的写法。

  以上的代码等同于:

  Buttonbutton=newButton("确定");

  MyActionListeneral=newMyActionListener();

  button.addActionListener(al);

  classMyActionListenerimplementsActionListener{

  publicvoidactionPerformed(ActionEvente){

  JOptionPane.showMessageDialog(null,"你点击了按钮");

  }

  }

  鼠标事件

  Java语言支持用户通过鼠标与应用程序进行交互。程序可以检测鼠标并对鼠标操作中发生的变化作出反应。。鼠标事件通过MouseListener接口处理,并通过如下方法对事件反应。

  mouseClicked:点击事件,当点击和释放鼠标按钮时处理此事件。

  mouseEntered:当鼠标进入一个组件时处理此事件。

  mouseExitied:当鼠标离开组件时处理此事件。

  mousePressed:当鼠标按下时处理此事件。

  mouseReleased:当鼠标释放时处理此事件。

  例子,我们来写个程序,当鼠标进入窗体时提示鼠标进入,离开时提示鼠标离开

  publicclassMouseEventDemoextendsFrameimplementsMouseListener{

  privatePanelpanel=newPanel();

  privateLabellabel;

  publicMouseEventDemo(){

  setBounds(100,100,300,300);

  add(panel);

  label=newLabel("Newlabel");

  panel.add(label);

  panel.addMouseListener(this);

  }

  privatestaticfinallongserialVersionUID=L;

  @Override

  publicvoidmouseClicked(MouseEvente){

  label.setText("你点击了鼠标");

  }

  @Override

  publicvoidmousePressed(MouseEvente){

  label.setText("你按下了鼠标");

  }

  @Override

  publicvoidmouseReleased(MouseEvente){

  label.setText("你释放了鼠标键");

  }

  @Override

  publicvoidmouseEntered(MouseEvente){

  label.setText("鼠标进入");

  }

  @Override

  publicvoidmouseExited(MouseEvente){

  label.setText("鼠标退出");

  }

  publicstaticvoidmain(String[]args){

  MouseEventDemodemo=newMouseEventDemo();

  demo.setVisible(true);

  }

  }

java基础事件

image.png

  总结:

  要理解AWT对于事件处理的机制

  掌握常见的事件处理类

  熟悉匿名类的写法

  以上就是动力Java培训机构小编介绍的“Java零基础入门编程:GUI事件处理”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

  • 上一篇: java基础入门实验题
  • 下一篇: java 入门基础
  • 版权声明


    相关文章:

  • java基础入门实验题2025-04-23 15:02:03
  • 学java的基础2025-04-23 15:02:03
  • java英文基础书2025-04-23 15:02:03
  • java基础入门课后习题2025-04-23 15:02:03
  • java基础运算试题2025-04-23 15:02:03
  • java 入门基础2025-04-23 15:02:03
  • 怎么学好java基础2025-04-23 15:02:03
  • java基础经典教材2025-04-23 15:02:03
  • java基础代码游戏2025-04-23 15:02:03
  • java基础英语词汇2025-04-23 15:02:03