【发布时间】:2012-03-07 10:56:31
【问题描述】:
我在这里学习 Java,并尝试掌握类以及如何最好地为我的小游戏捕捉鼠标事件等,所以请耐心等待并给我一些提示。
我项目的主类扩展了JFrame,并在构造时为其自身添加了一个扩展JPanel 的类的对象。这个JPanel 覆盖了整个窗口,这就是我用来在屏幕上绘制东西的地方。然后我有一个名为Scene 的类,它只扩展了对屏幕上当前对象的所有引用,并负责将它们全部编译并将它们传递回JPanel。我不想将完整的鼠标事件代码放在 JPanel 中,因为它会很乱,所以我想为它创建另一个名为 MEs 的类,并让每个场景都有一个。我的想法是,这样每个mes 对象都可以轻松访问每个场景中的对象。所以我的代码是这样的:
class DPanel extends JPanel {
Scene scCurrent;
public DPanel() {
scCurrent = new Scene();
addMouseMotionListener(new MouseAdapter() {
public void mouseMoved(MouseEvent me) { scCurrent.mes.moved(me); }
});
...
}
...
当然,inside scCurrent.mes.moved() 我什至不知道如何更改光标。它无法识别其中的setCursor()。如何更改光标并访问树上较高的对象,就像我需要切换场景一样?或者有没有其他地方我可以把我的鼠标事件处理代码塞进我的 JPanel 中?
【问题讨论】:
标签: java swing class event-handling