如何在Java小程序中打开模式对话框?

发布于 2024-09-28 01:42:56 字数 564 浏览 4 评论 0原文

我正在尝试在 Applet 前面显示一个模式对话框。

我当前的解决方案如下所示获取根框架:

Frame getMyParent() {
    Container parent = getParent();
    while (!(parent instanceof Frame)) {
        parent = ((Component)parent).getParent();
    }
    return (Frame)parent;
}

并按如下方式创建对话框:

public OptionsDialog(MainApplet applet, boolean modal) {
    super(applet.getMyParent(), "options", modal);
    // ....

然而,尽管模态行为正常工作,但通常会在框架下方显示模态对话框。

如何解决这个问题?

理想情况下,这应该适用于 Java 版本 1.5 及更高版本。

I'm trying to display a modal dialog in front of an Applet.

My current solution fetches the root frame like so:

Frame getMyParent() {
    Container parent = getParent();
    while (!(parent instanceof Frame)) {
        parent = ((Component)parent).getParent();
    }
    return (Frame)parent;
}

And creates the dialog as follows:

public OptionsDialog(MainApplet applet, boolean modal) {
    super(applet.getMyParent(), "options", modal);
    // ....

However often this shows the modal dialog below the frame, though the modal behaviour works correctly.

How can this be fixed?

Ideally this should be for Java versions 1.5 and above.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

一萌ing 2024-10-05 01:42:56
JDialog dialog = new JDialog(SwingUtilities.windowForComponent(this));
dialog.setModal(true);
dialog.setSize(200, 200);
dialog.setVisible(true);
JDialog dialog = new JDialog(SwingUtilities.windowForComponent(this));
dialog.setModal(true);
dialog.setSize(200, 200);
dialog.setVisible(true);
野侃 2024-10-05 01:42:56

Frame f =(Frame)SwingUtilities.getAncestorOfClass(Frame.class,parentWindow);
新的 JDialog(f,true);

(来源=http://kb.trisugar.com/node/7613
适用于parentWindow = sun.plugin2.main.client.PluginEmbeddedFrame

Frame f =(Frame)SwingUtilities.getAncestorOfClass(Frame.class,parentWindow);
new JDialog(f,true);

(source = http://kb.trisugar.com/node/7613)
works for parentWindow = sun.plugin2.main.client.PluginEmbeddedFrame

第几種人 2024-10-05 01:42:56

使用 null 代替 applet.getMyParent()

Use null insterad of applet.getMyParent()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文