我把jTextField命名为"startTextBox1“
我使用下面的方法可以通过名称来调用它;
在类中创建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对象。
在这种情况下,如何从文本字段中获取文本?
发布于 2014-08-12 21:39:20
这个怎么样?
public String getTextByComponentName(String name) {
if (componentMap.containsKey(name)) {
JComponent comp = (JComponent) componentMap.get(name);
if (comp instanceof JTextComponent) {
return ((JTextComponent)comp).getText();
}
}
return null;
}
https://stackoverflow.com/questions/25265723
复制相似问题