Java 如何在swing中获取可访问父级(面板)的名称?

Java 如何在swing中获取可访问父级(面板)的名称?,java,swing,parent-child,Java,Swing,Parent Child,当我单击按钮时,它将打印可访问的父名称。有没有办法做到这一点 我试过一些代码,但打印无效。 谁能指出我的错误吗 Container c = cancel.getParent(); System.out.println("Parent Name = "+c.getName()); 要使getName()工作,您应该在前面调用c.setName()并为其设置正确的名称 否则,它将只返回默认值,在大多数情况下(包括您的情况下)默认值为null,如果c是JFrame,它将默认返回类似

当我单击按钮时,它将打印可访问的父名称。有没有办法做到这一点

我试过一些代码,但打印无效。 谁能指出我的错误吗

    Container c  = cancel.getParent();
    System.out.println("Parent Name = "+c.getName());
要使
getName()
工作,您应该在前面调用
c.setName()
并为其设置正确的名称


否则,它将只返回默认值,在大多数情况下(包括您的情况下)默认值为
null
,如果
c
JFrame
,它将默认返回类似
Frame0
等的内容。

我无法确定您的问题,因为我没有看到您的完整代码,但请尝试以下代码:

JButton cancel = new JButton("AAAA");
JPanel p = new JPanel();
p.setName("Panel p");
p.add(cancel);
JFrame f = new JFrame();
f.add(p);
f.pack();
f.setVisible(true);
System.out.println(cancel.getParent().getName());
这将打印“面板p”作为取消按钮的父级

我想这就是你想要的


祝你好运。

我有一个jpanel作为家长,面板名称是Test,假设我想得到一个面板的名称,这是最简单的方法。你怎么说面板的名称是Test??您是否在代码中调用了
panel.setName(“Test”)
?我不明白重命名是什么意思,但是为了让getName()正常工作,您应该在创建面板时调用setName()。@Abishek Manoharan我犯了错误,现在我使用panel.setName()函数为面板设置名称。谢谢。谢谢,这一个很好。当一个答案适合你的问题时,通常你会接受它或投赞成票,或两者兼而有之。