在我的程序中,我动态生成一个新的textarea ta并用唯一标识符重命名它(在我的例子中是tabidis)
JScrollPane panel2 = new JScrollPane();
panel2.setName(tabidis);
ta = new JTextArea("");
ta.setColumns(30);
ta.setRows(20);
ta.setEditable(false);
panel2.setViewportView(ta);
ta.setName(tabidis);
jTabbedPane1.add(username4, panel2);
元素ta是动态生成的,并相应地给出了相应的名称。
我需要一种方法来获取“ta”的名称,而不是选择的标签
答案 0 :(得分:1)
很多将取决于UI的结构,如果它是一致的,那么它变得更容易,如果不是,更难..
您可以使用与此类似的内容从给定的父组件开始查找给定类型的所有子组件
public static <T extends Component> List<T> findAllChildren(JComponent component, Class<T> clazz) {
List<T> lstChildren = new ArrayList<T>(5);
for (Component comp : component.getComponents()) {
if (clazz.isInstance(comp)) {
lstChildren.add((T) comp);
} else if (comp instanceof JComponent) {
lstChildren.addAll(findAllChildren((JComponent) comp, clazz));
}
}
return Collections.unmodifiableList(lstChildren);
}
这将返回特定类型的<{1}}子组件
像...一样的东西。
List