Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java:右键单击事件_Java_Swing_Events_Mouse - Fatal编程技术网

java:右键单击事件

java:右键单击事件,java,swing,events,mouse,Java,Swing,Events,Mouse,在TableHeader上,我尝试用鼠标右键单击,如下所示: tableHeader.click(MouseEvent.BUTTON3); 但这不起作用,你有什么想法/建议吗 谢谢, 如果是因为要显示弹出菜单,则可以这样做: popupMenu.show(tableHeader,0,0) 如果是因为你想进入一个鼠标听筒,比如: class MyMouseListener implements MouseListener{ @Override public void mouseReleas

在TableHeader上,我尝试用鼠标右键单击,如下所示:

tableHeader.click(MouseEvent.BUTTON3);
但这不起作用,你有什么想法/建议吗

谢谢,

  • 如果是因为要显示弹出菜单,则可以这样做:

    popupMenu.show(tableHeader,0,0)


  • 如果是因为你想进入一个鼠标听筒,比如:

    class MyMouseListener implements MouseListener{
    @Override
    public void mouseReleased(MouseEvent arg0) {
        if(SwingUtilities.isRightMouseButton(arg0)){
            //my code
        }
    }
    //...
    
然后您可以将代码放入一个方法并打开该方法

 //open the method:
 myMouseListenerReplacement();


//the method
private void myMouseListenerReplacement(){
 //My code
}

这是一个重复的
TableHeader
不是Java Swing,
click
不是
JTableHeader
中的方法。请告诉我们您实际使用的是哪个框架。您尝试模拟右键单击,对吗?为什么?-1(假设OP确实针对Swing JTableHeader)a)如果你推荐一个JPopupMenu-这很好-那么最简单的安装方法是作为header的组件PopupMenu b)如果你坚持走老路,在发布时打开它是错误的(请参阅snoracle教程了解正确的方法)c)不要直接使用mouseButton常量,始终要通过SwingUtilities.isxxbutton我认为OP想要模拟mouseevent,然后捕获它。//什么是snoracle的教程??