java多态import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ComplexListener implements MouseMotionListener,MouseListener,ActionListener{ JFrame f; JTextArea tf; JButton bt; int number = 1; public ComplexListener(){ JLabel label =new JLabel("click and Drag the mouse"); f=new JFrame ("Complex Listener"); tf=new JTestArea(); bt= new JButton("退出"); tf.addMouseMotionListener(this); tf.addMouseListener(this); bt.addActionListener(this); f.add(label,BorderLayout.NORTH); f.add(tf,BorderLayout.CENTER); f.add(bt,BorderLayout.SOUTH); f.setSize(300,200); f.setVisible(true); //MouseMotionListener的方法 public void mouseDragged(MouseEvent e){ String s=number+++""+"The mouse Dragged:x="+ e.getX()+"y="+e.getY()+"\n"; tf.append(s); } //MouseMotionListener的方法 public void mouseEntered(MouseEvent e){ String s=number+++""+"The mouse entered"+"\n"; tf.append(s); } public void mouseClicked(MouseEvent e){ String s=number+++""+"The mouse clicked."+"\n"; tf.append(s); } public void mouseExited(MouseEvent e){ String s=number+++""+"The mouse exit."+"\n"; tf.append(s); } //未使用的MouseMotionListener的方法 public void mouseMoved(MouseEvent e){ } //未使用的MouseListener的方法 public void mouseReleased(MouseEvent e){ } public void mousePressed(MouseEvent e){ } //ActionListener的方法 public void actionPerformed(ActionEvent e){ System.exit(0); public static void main(String args[]){ ComplexListener two = new ComplexListener(); } } 在Java编程语言中,多态性(Polymorphism)是面向对象编程的三大特性之一,其余两个是封装和继承。多态性允许我们使用一个接口来代表多种类型的对象,这使得代码更加灵活,降低了耦合度,提高了可扩展性。在给定的“java多态作业”中,可以看到多态性的应用主要体现在实现多个接口(MouseMotionListener、MouseListener和ActionListener),这些接口代表了不同的事件监听器,每个接口都定义了一系列方法来处理特定类型的事件。 `ComplexListener`类实现了`MouseMotionListener`、`MouseListener`和`ActionListener`这三个接口。这意味着该类的对象能够响应鼠标移动、鼠标点击以及按钮点击等事件。通过实现这些接口,`ComplexListener`类就具备了处理这些事件的能力,这是多态性的一个实例,因为同一个对象可以根据不同的情境执行不同的行为。 `MouseMotionListener`接口提供了`mouseDragged`和`mouseEntered`方法,这两个方法在代码中被具体实现。当鼠标在文本区域上拖动时,`mouseDragged`方法会被调用,记录并显示鼠标的位置;而当鼠标进入文本区域时,`mouseEntered`方法则会打印出相应消息。未使用的`mouseMoved`方法表示该类并不关心鼠标在组件上的移动,但仍然需要提供一个空方法以满足接口的要求。 `MouseListener`接口中的`mouseClicked`和`mouseExited`方法也被实现,用于记录和显示鼠标点击和离开组件的信息。`mousePressed`和`mouseReleased`方法虽然在`MouseListener`接口中,但在`ComplexListener`类中并未使用,它们是预留的,可能在其他场景下需要处理鼠标按下和释放的事件。 `ActionListener`接口的`actionPerformed`方法用于处理按钮点击事件。在这里,当用户点击“退出”按钮时,系统会调用这个方法,然后执行`System.exit(0)`来关闭应用程序。 在例8-10中,`TestButton`类展示了如何使用`ActionListener`来监听按钮的单击事件。`ButtonHandler`类实现了`ActionListener`接口,并重写了`actionPerformed`方法,当按钮被单击时,这个方法会被调用,打印出相应的信息。 这些示例展示了Java中的事件监听机制,以及如何利用多态性来创建具有多种行为的类。通过实现不同的监听器接口,`ComplexListener`类可以处理鼠标和按钮的各种交互,这就是多态性在实际编程中的应用。它使得代码可以适应不同的事件,并提供了统一的接口来处理这些事件,使得程序设计更加模块化和易于维护。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助