Java中要监听鼠标事件,则实现监听器类可以是使用的方式有哪几种?

Python0972

Java中要监听鼠标事件,则实现监听器类可以是使用的方式有哪几种?,第1张

public abstract class MouseAdapter extends Object implements MouseListener, MouseWheelListener, MouseMotionListener

如上所示,监听鼠标事件 只要使用MouseAdapter类就行了

public class BtnText1 extends  JFrame implements MouseMotionListener

不需要实现MouseMotionListener接口,你已经用了addMouseMotionListener方法

MouseAdapter类已经是实现了MouseMotionListener接口的。

改成

public class BtnText1 extends  JFrame

可以运行成功

import java.awt.BorderLayout

import java.awt.Button

import java.awt.CardLayout

import java.awt.FlowLayout

import java.awt.Frame

import java.awt.Panel

import java.awt.event.ActionEvent

import java.awt.event.ActionListener

import java.awt.event.WindowAdapter

import java.awt.event.WindowEvent

public class MyTestawt_1 extends Frame {//implements MouseListener {

//定义按钮以及面板布局

private Button b1 = new Button("第一页")

private Button b2 = new Button("第二页")

private Button b3 = new Button("第三页")

private Panel p2 = new Panel()

private Panel p1 = new Panel()

private CardLayout cl = new CardLayout()

//构造方法

public MyTestawt_1(String str){

super(str)

init()

}

//定义初始化方法

public void init(){

//设置属性

setSize(400, 300)

setLayout(new BorderLayout())

//设置上方的控制按钮

add(BorderLayout.NORTH,p1)

p1.setLayout(new FlowLayout())

p1.add(b1)

p1.add(b2)

p1.add(b3)

add(BorderLayout.CENTER,p2)

p2.setLayout(cl)

p2.add("第一页",new Button("第一页的内容"))

p2.add("第二页",new Button("第二页的内容"))

p2.add("第三页",new Button("第三页的内容"))

//设置可见

setVisible(true)

//实现窗口关闭功能

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent we){

setVisible(false)

dispose()

System.out.println("执行到此3")

System.exit(0)

}

})

b1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

System.out.println("执行到此1")

cl.first(p2)

System.out.println("执行到此2")

}

})

b2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

cl.first(p2)

cl.next(p2)

}

})

b3.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

cl.last(p2)

}

})

}

public static void main(String[] args) {

//程序入口

new MyTestawt_1("网格型布局")

}

}