Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.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_Awt_Frame_Repaint_Popupmenu - Fatal编程技术网

Java 弹出菜单冻结父帧

Java 弹出菜单冻结父帧,java,awt,frame,repaint,popupmenu,Java,Awt,Frame,Repaint,Popupmenu,我在一个不断重新绘制的框架上使用AWT弹出菜单(这是一个游戏),但每当弹出菜单显示时,父框架就会冻结。有没有办法禁用此功能 我假设应用程序的其余部分是在Swing中制作的,并且您正在将AWT popmenu与Swing组件结合使用 我也有很多AWT流行菜单的问题。是否需要在应用程序的边界之外显示Popmenu?如果您只需要在应用程序(JFrame)中显示它,那么您最好在所有其他面板(带有JLayredPane)的顶部放置一个JComponent,并在那里绘制自己的弹出菜单 更简单的方法是在Jav

我在一个不断重新绘制的框架上使用AWT弹出菜单(这是一个游戏),但每当弹出菜单显示时,父框架就会冻结。有没有办法禁用此功能

我假设应用程序的其余部分是在Swing中制作的,并且您正在将AWT popmenu与Swing组件结合使用

我也有很多AWT流行菜单的问题。是否需要在应用程序的边界之外显示Popmenu?如果您只需要在应用程序(JFrame)中显示它,那么您最好在所有其他面板(带有JLayredPane)的顶部放置一个JComponent,并在那里绘制自己的弹出菜单

更简单的方法是在Java7中使用JLlayer以获得相同的效果(如果您不是在Java7上,而是在Java5或6上,则使用JXLlayer)


上述方法也比AWT popmenu强大得多,因为您可以控制图形。因此,例如,使其半透明或使其具有圆形边缘就变得轻而易举了。

这是Swing还是AWT应用程序?我们能看到一些代码吗?我只使用AWT组件:)不确定,但上述在AWT中是不可能的,对吗?我不知道;我从来没有理由直接使用AWT。您是否在游戏中使用AWT+Java2D?我猜你是在用Graphics2D对象画图?你能给我们一些关于你正在做什么的额外信息吗?我正在使用一个图形对象直接在一个(未装饰的)框架上绘画。你试过直接使用Swing而不是AWT吗?将绘制方法放在JComponent.paintComponent(图形g)中,并将其放在未修饰的JFrame中。然后使用JPopupMenu而不是其AWT计数器部分,看看是否有效。我认为如果你直接使用AWT,很多人都帮不了你,因为大多数人都不直接使用AWT(据我所知)。对于本地组件,人们倾向于使用SWT而不是AWT。除此之外,还有JavaFX和Swing,但我并不经常看到直接使用AWT。谢谢,但我更喜欢尽可能地使用AWT:)我也尝试在不同的框架上显示弹出菜单,但第一个框架仍然冻结。。