【问题标题】:Java Swing: JInternalFrame: need a dialog popupJava Swing:JInternalFrame:需要弹出对话框
【发布时间】:2010-12-12 21:41:43
【问题描述】:

我有一个 JInternalFrame 窗口,当按下 JButton 时需要弹出一个模式对话框。一开始我尝试使用JDialog,但是发现JDialog的构造函数需要:

  1. JFrame
  2. 布尔模态

我尝试将 JInternalFrame 传递给它,但类型不匹配。

我应该将 JDialog 与 JInternalFrame 一起使用吗?如果我不指定所有者(即传递空值)怎么办?这有什么问题吗?

【问题讨论】:

    标签: java swing jdialog jinternalframe


    【解决方案1】:
    SwingUtilities.getAncestorOfClass(Window.class, myButton)
    

    abvove 方法将返回包含您的按钮的窗口。 一旦你有了它,你可以将它传递给对话框的构造函数:)

    编辑1: 我误读了我猜的问题。你怎么能有一个 JinternalFrame 作为最顶层的窗口??

    编辑2: 此外,如果您将 null 传递给 Jdialog 构造函数,则默认情况下它使用共享所有者,即 SwingUtilities.getSharedOwnerFrame()

    【讨论】:

    • 好的,我现在就试试。作为旁注,这也意味着将 JDialog 与 JInternalFrame 一起使用是完全正常的吗?
    • 对不起,我不是很清楚。我有一个 JFrame 作为最顶层的窗口,其中包含一堆 JInternalFrames。但是,该按钮属于 JInternalFrame。
    • 好的..我刚试过;我认为它工作正常。 (我还没有将 JDialog 的按钮连接到任何 actionPerformed,但我至少可以在按下 JInternalFrame 的按钮时弹出一个对话框!)谢谢!
    • @shachris23..不,亲爱的,您不能将内部框架传递给 jdialog。 jdialog 在其构造函数中仅支持 window、frame 和 diaolg。但当然你可以在你的应用程序中同时使用内部框架和对话框..:)
    • @shachris23 ...也请在上面的答案中检查EDIT2 :)
    猜你喜欢
    • 1970-01-01
    • 2015-09-17
    • 2012-06-07
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多