【问题标题】:how to grab user edition from numerous swing components?如何从众多 Swing 组件中获取用户版本?
【发布时间】:2010-09-08 12:43:46
【问题描述】:

我有一个 JFrame 和一堆不同的 JTextField 等等。如何在不为每个组件设置操作的情况下收集用户输入的数据?

注意:我使用“内联”代码创建此 JTextField,如下所示:

    layout.row().grid(new JLabel("Density")).add(new JTextField("1"))
            .spanRow();
    layout.row().grid(new JLabel("Minimal size"))
            .add(new JTextField("1")).spanRow();

【问题讨论】:

    标签: java swing jtextfield


    【解决方案1】:

    您可能需要遍历每个容器的子元素,检查它是否是JTextField 的实例,然后使用getText 方法读取内容。

    【讨论】:

    • 好的,那很好,但是如何让我的迭代代码知道它处理的是什么编辑器?
    • 我不知道你在问什么,对不起。您是在问如何唯一标识您正在读取的组件吗?
    • 是的,如果我按照您的回答遍历子元素,那么如何确定将读取的值放在哪里?
    • 您可以使用文本字段的哈希码,或者找到相应的标签文本?
    【解决方案2】:

    Swing Utils 类有一些方便的方法使这变得简单:

    List<JTextField> components = SwingUtils.getDescendantsOfType(JTextField.class, container, true);
    
    for (JTextField component: components)
    {
        // add custom code here
    }
    

    【讨论】:

      猜你喜欢
      • 2013-10-18
      • 1970-01-01
      • 1970-01-01
      • 2015-04-20
      • 1970-01-01
      • 2021-02-20
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多