Popupmenu不会在java中工作?

时间:2015-05-14 00:20:56

标签: java swing listener popupmenu

我正在构建一个文字处理程序作为我在学校的Java课程的作业,当我右键单击我的文本区域时,我很难让弹出菜单工作。我已经构建了弹出菜单,让我的textarea听我的popuplistener,我已经覆盖了鼠标按下和鼠标释放函数

{{1}}

我不明白为什么它不起作用但也许我错过了一些至关重要的东西,请帮助!!非常感谢

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);