我目前正在为游戏制作关卡编辑器。目前,要创建实体,您必须单击创建JButton,然后会出现一个表单,您可以在其中输入其坐标及其大小。
我想实现一个鼠标功能。用户单击创建JButton,然后必须在预览了级别的JPanel上的某处按下mouseButton,然后拖动以设置对象的大小,最后释放按钮。然后在按下按钮的位置创建对象。
我将一个MouseListener添加到previewPanel(以获得正确的坐标)。
我的问题是:当我点击按钮时该怎么办?
在actionPerformed方法中?
基本上,程序将是:
1)等待按下按钮
2)获得坐标
3)等待按钮被释放
4)获取新坐标以使对象的大小
5)创建对象
我应该如何正确地做到这一点?
提前致谢
答案 0 :(得分:1)
我的问题是:点击按钮后该怎么办? 在actionPerformed方法里面?
激活MouseListener。这可以通过在按钮单击时将MouseListener和MouseMotionListener(MouseAdapater可以同时执行)添加到绘图JPanel,或者通过更改已添加的MouseAdapater(我的首选项)的状态再次添加到JPanel中。这可以像将布尔变量切换为true一样简单,然后让mousePressed,mouseDragged,mouseReleased方法在执行任何操作之前检查此布尔值的状态。
请注意,如果您转到第一条路线 - 按下按钮时添加MouseListener / MouseMotionListener,如果您在完成时不小心删除它们,则可能会添加多个侦听器。这就是为什么我更喜欢第二种方法。
如,
window.location.clear()