Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.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 openJDK 8中的isPopupMenu方法_Java_Swing_Openjdk - Fatal编程技术网

Java openJDK 8中的isPopupMenu方法

Java openJDK 8中的isPopupMenu方法,java,swing,openjdk,Java,Swing,Openjdk,刚刚遇到openJDK类方法,实现如下: private boolean isPopupMenu() { return ((invoker != null) && !(invoker instanceof JMenu)); } 我想知道这是否是确定这是否是弹出菜单的最佳方法?对于当前的OpenJDK,当然,它应该可以工作。如果未来的OpenJDK版本引入不同的菜单类型或重新设计实现(这似乎不太可能,不确定现在对Swing有多感兴趣),您的方法可能

刚刚遇到openJDK类方法,实现如下:

   private boolean isPopupMenu() {
        return  ((invoker != null) && !(invoker instanceof JMenu));
    }

我想知道这是否是确定这是否是弹出菜单的最佳方法?

对于当前的OpenJDK,当然,它应该可以工作。如果未来的OpenJDK版本引入不同的菜单类型或重新设计实现(这似乎不太可能,不确定现在对Swing有多感兴趣),您的方法可能会给出错误的结果


也许有一种更直接的方式来实现你的需求?或者,如果您正在编写一个UI组件,负责区分调用代码?

对于当前的OpenJDK,当然,它应该可以工作。如果未来的OpenJDK版本引入不同的菜单类型或重新设计实现(这似乎不太可能,不确定现在对Swing有多感兴趣),您的方法可能会给出错误的结果


也许有一种更直接的方式来实现你的需求?或者,如果您正在编写一个UI组件,负责区分调用代码?

因为它是一个私有方法,所以无论是最好的还是其他的,您都不能自己使用它。问题也是“我可以为相同的目的使用相同的逻辑吗?”(因为
getInvoker()
是公共的,它似乎是可以实现的?)。我认为依赖内部逻辑并不是一个很好的方法,但至少现在这个问题对我来说是有意义的(请删除我之前的嘈杂评论,对不起),就openJDK实现的
jpopumenu
而言,给定的逻辑可能是“最好的”。作为应用程序程序员要遵循的一个例子,它可能是不必要的通用方法。因为它是一个私有方法,所以无论是最好的还是其他的,它都不能为您自己使用。问题“我可以为相同的目的使用相同的逻辑吗?”(因为
getInvoker()
是公共的,它似乎是可以实现的?)。我认为依赖内部逻辑并不是一个很好的方法,但至少现在这个问题对我来说是有意义的(请删除我之前的嘈杂评论,对不起),就openJDK实现的
jpopumenu
而言,给定的逻辑可能是“最好的”。作为应用程序程序员要遵循的示例,它可能是不必要的通用性。