Clear Swing Component values



是否有清除Swing组件值的方法。例如,如果我们每次都要清除JTextField,我就必须调用-txtField.setText("")。我曾经为这类案件制作了一种实用的方法——

public static void clearFields(JComponent[] components) {
        for (int i = 0; i < components.length; i++) {
            JTextComponent jComponent = (JTextComponent) components[i];
            jComponent.setText("");
        }
    }

我想知道Swing API本身是否有更好的方法。或者是否有刷新JPanel中所有值的方法。

有两种方式

  1. 你的方法没有错,但我建议测试if (c instanceof JTextField) {,然后你可以在一个循环中为不同的JComponents(或它们的组)重新设置(different too)值

  2. 将所需的JComponents放入某种类型的arraymap

  3. 注意从之前的所有JTextComponent中删除(如果有)DocumentDocumentListener,之后的值被重新设置,循环结束,然后将所需的侦听器添加回JTextComponent,以避免引发重复事件。。。

不,这是正确的方法,我看不出以这种方式清除它们有什么不利之处。

我想的唯一替代方法就是通过实例化新的UI组件并重新发布它们来重新创建GUI,但这似乎有些过头了,还会让你失去对旧组件的所有引用。

相关内容

  • 没有找到相关文章

最新更新