我想知道在这种情况下 MouseAdapter 的范围是什么。
class foo extends JPanel()
{
private JMenu edit = new JMenu();
public foo()
{
this.edit.getItem(0).addMouseListener(new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 1) {
edit.getItem(0).setEnabled(true);
}
}
});
}
}
我认为 MouseAdapter 可以访问该变量edit因为新声明的MouseAdapter是该类的内部类foo。但是,它找不到变量edit。如果我显式声明一个内部类并实现,例如 MouseAdapter 接口或其他接口,它可以检测到变量edit所以我的问题是范围是什么新的鼠标适配器()有?此外,有人知道这方面的好书吗?非常感谢。顺便说一句,我得到的错误是局部变量是从内部类访问的,需要将其声明为final
1) edit.getItem(0)
返回拳头JMenuItem
如果存在,否则返回IllegalArgumentException
2) this.edit.getItem(0)
,不是返回成员的类
3) edit.getItem(0).addMouseListener(new MouseAdapter(){
会适得其反,因为JMenu
, JMenuItem
已实施MouseEvents
正确,为了更好的解决方法,你必须看看ButtonModel
4)没有理由scope of the mouse adapter
5)用于监听事件JMenu
(not JMenuItem
) 看着MenuListener
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)