【发布时间】:2023-04-01 03:31:01
【问题描述】:
我有一个名为“startTextBox1”的 jTextField
我使用下面的方法可以通过名称调用它;
在类中创建 Hashmap。
private HashMap componentMap;
用组件名称填充 hashmap。
private void createComponentMap() {
componentMap = new HashMap<String,Component>();
Component[] components = jDesktopPane1.getComponents();
for (int i=0; i < components.length; i++) {
componentMap.put(components[i].getName(), components[i]);
}
}
按名称调用组件。
public JComponent getComponentByName(String name) {
if (componentMap.containsKey(name)) {
return (JComponent) componentMap.get(name);
}
else return null;
}
当我调用 getComponentByName("startTextBox1").getName() 时,它成功地给了我 startTextBox1。
但我不能调用getComponentByName("startTextBox1").getText(),因为映射的组件是JComponent 而getName() 是JComponent 方法。但是getText() 是 JTextComponent 对象。
在这种情况下如何从我的文本字段中获取文本?
【问题讨论】:
标签: java swing hashmap jcomponent jtextcomponent