2012-06-09 33 views
0

我在不断重新绘制(这是一款游戏)的框架上使用AWT PopupMenu,但每当PopupMenu显示时,父框架都会冻结。有没有办法来禁用这个?PopupMenu冻结父框架

+0

这是一个Swing或AWT应用程序吗?我们可以看到一些代码吗? –

回答

1

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

我已经得到了AWT PopMenu问题的公平份额。你需要在应用程序的界限之外显示Popmenu吗?如果您只需要能够在应用程序(JFrame)中显示它,那么您可能会将JComponent放在所有其他面板上(使用JLayredPane)并在其中绘制自己的流行菜单。

更容易的是在Java 7中使用JLayer获得相同的效果(或者,如果您不使用Java 7而使用Java 5或6,则使用JXLayer)。

上述方法也是AWT popmenu功能更强大,因为您控制图纸。因此,例如使其变成半透明的或者让它圆滑的边缘变得轻而易举。

+0

我只使用AWT组件:)不确定,但上述不可能在AWT中,对不对? – Mark

+0

我不知道;我从来没有理由直接使用AWT。你使用的是AWT + Java 2D吗?我猜你正在使用Graphics2D对象来完成绘图?你能否提供一些关于你在做什么的额外信息? –

+0

我正在使用Graphics对象直接在(未修饰)框架上绘制 – Mark