我有一个由几个类组成的Java程序。

现在,我在名为Application的类中创建了Java程序的接口。我在那里定义了几个按钮。

这是我将鼠标侦听器添加到Application类中的按钮的方式:

我还有一个名为DrawingCanvas的类,其中包含许多鼠标事件处理程序。这些事件处理程序之一是mousePressed。这是mousePressed的代码:

mousePressed的问题在于它无法识别按钮名称,例如“ Button_Square”,“ Button_Rectangle”等。这是因为这些按钮已在Application类而不是DrawingCanvas类中声明。

请问如何获取触发鼠标事件的按钮名称?不要忘记声明按钮的类与实现mouselisteners和mousemotionlisteners的类不同。谢谢 :)

最佳答案

只要您要创建8个不同的侦听器,请使用JButton进行区分。

Button_Square.addMouseListener(new DrawingCanvas(Button_Square));
Button_Square.addMouseMotionListener(new DrawingCanvas(Button_Square));

Button_Rectangle.addMouseListener(new DrawingCanvas(Button_Rectangle));
Button_Rectangle.addMouseMotionListener(new DrawingCanvas(Button_Rectangle));

Button_Circle.addMouseListener(new DrawingCanvas(Button_Circle));
Button_Circle.addMouseMotionListener(new DrawingCanvas(Button_Circle));

Button_Triangle.addMouseListener(new DrawingCanvas(Button_Triangle));
Button_Triangle.addMouseMotionListener(new DrawingCanvas(Button_Triangle));

09-27 10:03