我想向我的鼠标事件传递/访问参数。
public class Button extends JButton{
public int fileID=6;
public int getButtonID(){
return fileID;
}
}
[View.java]
Button1.addMouseListener(controller);
[Controller.java]
public void mousePressed(MouseEvent e) {
System.out.println(e.getButtonID()); //not working
System.out.println(e.getSource().getButtonID()); //not working
基本上,我需要的是对单击的按钮的某种引用,以便我可以获得其文件 ID。这可能吗?每个按钮代表一个文件,我想让用户可以删除它。请告诉我是否有更好的方法来获取用户点击的信息。
谢谢
最佳答案
如果您可以确定您的 Controller
只会添加到 Button
中,那么为什么不将 e.getSource()
转换为按钮
?
((Button) e.getSource()).getButtonID()
但是,您也可以在 Controller
的构造函数中获取 Button
并使用它(这样您无法获得 ClassCastException
因为它必须是一个 Button
。)
关于Java通过MouseEvent访问点击JButton的公共(public)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41660218/