需要对一个JButton b添加一个监听事件达到创建一个自定义的Position(x,y)的对象:
监听类NewListen中需要用到鼠标在面板上点击取坐标值来完成创建一个Position(x,y)的对象。
部分代码如下,得不到想要的结果,鼠标取的坐标好像完全没用,不管在面板的什么位置点击取值,得到的结果都是position(0,0).哪位大侠帮忙看看问题出在哪里? int xFromMus, yFromMus; b.addActionListener(NewListen()); public class NewListen implements ActionListener{ @Override public void actionPerformed(ActionEvent ave) { kp.addMouseListener(musLyss);//kp为之前建立的面板。 Position pos=new Position(xFromMus,yFromMus);
print(pos); } class MusLyss extends MouseAdapter{ public void mouseClicked(MouseEvent mev) { if(mev.getButton()==MouseEvent.BUTTON{ xFromMus=mev.getX(); yFromMus=mev.getY(); } } }
估计是坐标系和相对那个组件有关,参考 https://blog.csdn.net/shu15121856/article/details/79068541
已经解决了
谢谢回答!不过程序似乎根本就没成功把鼠标监听加上去。因为我只点击按钮b, 都还没点击屏幕的时候,控制台就把位置对象(0,0)打印出来了。我检查了一下,明明在按钮b上加了事件监听,事件监听内再对面板加了鼠标监听啊 好奇怪 好像鼠标监听根本就没起作用 可以帮看一下是什么原因吗?多谢
– jinleiDev 6年前