首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过名称和JTextComponent获取组件

通过名称和JTextComponent获取组件
EN

Stack Overflow用户
提问于 2014-08-12 21:35:36
回答 1查看 162关注 0票数 0

我把jTextField命名为"startTextBox1“

我使用下面的方法可以通过名称来调用它;

在类中创建Hashmap。

代码语言:javascript
运行
复制
private HashMap componentMap;

使用组件名称填充hashmap。

代码语言:javascript
运行
复制
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]);
    }
}

用于调用组件的名称。

代码语言:javascript
运行
复制
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对象。

在这种情况下,如何从文本字段中获取文本?

EN

回答 1

Stack Overflow用户

发布于 2014-08-12 21:39:20

这个怎么样?

代码语言:javascript
运行
复制
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;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25265723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档