gpt4 book ai didi

java - Java中如何获取GUI组件的名称?

转载 作者:行者123 更新时间:2023-11-30 04:51:33 26 4
gpt4 key购买 nike

我需要能够拥有类中的组件列表及其各自的变量名称。我确实设法获得了 GUI 中所有组件的列表。但是,当我调用组件的 getName 方法时,返回 null。有谁知道如何为组件获取这样的名称吗?

这是到目前为止的代码:

public static void main(String[] args){
Calculator c = new Calculator();

List<Component> containers = getAllComponents(c.getContentPane());
for (int i = 0; i < containers.size(); i++) {
System.out.println(containers.get(i).getClass().getName());
System.out.println(containers.get(i).getName());
}
System.exit(0);
}

public static List<Component> getAllComponents(final Container c) {
Component[] comps = c.getComponents();
List<Component> compList = new ArrayList<Component>();
for (Component comp : comps) {
compList.add(comp);
if (comp instanceof Container) {
compList.addAll(getAllComponents((Container) comp));
}
}
return compList;
}

最佳答案

getName() 仅当您之前调用过 setName() 时才会返回值。但这个名字是任意的。它是 UI 开发人员的调试辅助工具。

我的猜测是您想知道哪个组件位于 Calculator 类的哪个字段中。为此,您需要使用 Reflection API .

尝试Calculator.class.getDeclaredFields()。要读取私有(private)字段的值,请参阅 this example code .

关于java - Java中如何获取GUI组件的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9735052/

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