有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

swing Java查找JFrame属于JPanel的内容

我有一个多个JPanels放在一个对话中,几个小时后,我仍然找不到JPanels存储在其中的帧。我想知道是否有一种方法可以返回JFrame(最终目标是在JFrame上调用setDefaultCloseOperation())。我在想getParent()会这样做,但是无论我经历了多少层家长,我仍然无法调用setDefaultCloseOperation


共 (2) 个答案

  1. # 1 楼答案

    Window window = SwingUtilities.windowForComponent(...);
    
  2. # 2 楼答案

    有一种实用方法: SwingUtilities.getWindowAncestor()

    如果将JPanel添加到JFrame中,它显然是一个JFrame实例:

    JFrame f = (JFrame) SwingUtilities.getWindowAncestor(panel);
    

    注意:getWindowAncestor()windowForComponent()提供相同的功能