我正在构建一个文字处理程序作为我在学校的Java课程的作业,当我右键单击我的文本区域时,我很难让弹出菜单工作。我已经构建了弹出菜单,让我的textarea听我的popuplistener,我已经覆盖了鼠标按下和鼠标释放函数
{{1}}
我不明白为什么它不起作用但也许我错过了一些至关重要的东西,请帮助!!非常感谢
答案 0 :(得分:4)
将class PopupListener extends MouseAdapter {
@Override
public void MousePressed(MouseEvent e) {
System.out.println("Pressed");
popit(e);
}
@Override
public void MouseReleased(MouseEvent e) {
System.out.println("Pressed");
popit(e);
}
注释添加到您认为重写的方法中......
class PopupListener extends MouseAdapter {
@Override
public void mousePressed(MouseEvent e) {
popit(e);
}
@Override
public void mouseReleased(MouseEvent e) {
popit(e);
}
@Override
public void mouseClicked(MouseEvent e) {
popit(e);
}
private void popit(MouseEvent e) {
if (e.isPopupTrigger()) {
pop.show(e.getComponent(), e.getX(), e.getY());
}
}
}
您现在会发现这无法编译,但为什么?由于Java区分大小写,并且按照惯例,方法名称以小写字符
开头你会发现类似......
的东西textarea.setComponentPopupMenu(pop);
会更好。但话说回来,你通常会找到
NullPointerException
显着简单且不易出错(并且它不会像您的示例代码那样导致 indicator.setVisibility(View.INVISIBLE);
indicator2.setVisibility(View.INVISIBLE);
Animation fadeInAnimation = AnimationUtils.loadAnimation(getActivity(), R.anim.fade_in_view);
indicator.startAnimation(fadeInAnimation);
indicator2.startAnimation(fadeInAnimation);
。