多个JTextField清除

时间:2017-08-01 13:20:14

标签: java

在我的程序中,我有50多个文本字段,并有一个清晰的按钮。我想知道是否有办法循环遍历它们以清除它们而不是将每个文本字段设置为textfield.setText(“”)。我知道这种方式有效,但我只是想知道还有什么可能。

谢谢

2 个答案:

答案 0 :(得分:0)

您可以将整个框架传递给该函数,然后获取此框架中的所有组件并检查它是否是一个文本字段只是清楚我

具有静态功能的类:

public class JCTest
{
    public static void Clear(JInternalFrame intFrame)
    {
        if (intFrame == null)
            return;
        Container con = intFrame.getContentPane();
        for (Component c : con.getComponents())
        {
            if (c instanceof JTextField)
            {
                JTextField j = (JTextField)c;
                j.setText("");
            }
        }
    }
}

称之为:

public class Main
{
    public static void main(String[] args)
    {
        JInternalFrame intFrame = new JInternalFrame();
        JCTest.Clear(intFrame);
    }
}

或者只是在视图类

中进行
for (Component C : this.getComponents())
{    
    if (C instanceof JTextField ){

        ((JTextField) C).setText(""); 
    }
}

答案 1 :(得分:0)

创建包含所有文本字段的列表,并将其全部清除:

List<JTextField> fields = new ArrayList<>();
fields.add(new JTextField());
fields.add(new JTextField());
fields.add(new JTextField());

fields.forEach((a) -> a.setText(""));