gpt4 book ai didi

java - JRootPane.getName() 返回 Null?

转载 作者:行者123 更新时间:2023-12-01 09:01:57 24 4
gpt4 key购买 nike

我正在尝试调试一个非常讨厌的错误(即使我的面板已添加到 JFrame 中,但它也没有显示),并且我注意到 JFrame 内的 JRootPane 的名称设置为 null:(这是我的 JFrame 构造函数的一部分)

this.add(uiRenderer/*This is a JPanel*/); //adding the panel to the jframe
System.out.println(this.getRootPane().getName()); //getting the name of the root pane

这正常吗?或者这可能导致面板根本不显示?可能是什么原因造成的?附带说明一下,JRootpane 本身不为 null,只是 getName() 返回的其中的名称 String。我可以很好地获取根 Pane 内的组件,并显示我尝试添加到 JFrame 的面板,但它仍然没有显示。谢谢!

好吧,这可能是一个 java 版本错误。显然这个空名称出现在旧版本的 java 中。 https://bugs.openjdk.java.net/browse/JDK-4836615感谢任何让我知道此事的人。

最佳答案

JRootPane从其父级 Component 继承 getName() ,并且 JRootPane 不会重写该方法。如果您没有显式地将名称设置为非空值,getName() 将返回 null。典型的实现见 here 。它调用包私有(private)方法 constructComponentName(),该方法无条件返回 null

String constructComponentName() {
return null;
}

关于java - JRootPane.getName() 返回 Null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41598553/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com