动力节点口口相传的Java黄埔军校
Java零基础入门编程:GUI事件处理
2019-09-11 来源:动力节点



  今天讲一下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=5563848995118514763L;


  @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);


  }


  }

image.png

  总结:


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


  掌握常见的事件处理类


  熟悉匿名类的写法


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



开班信息

同类文章

微信搜索“动力节点Java学院“或扫二维码

关注官方微信免费领学习资料

动力节点Java培训机构,行业口碑最好的Java培训机构。

立即抢名额