Соблюдайте следующий код:
public class Main
{
public static void main(String[] args)
{
Main m = null;
var ms = new Main[]{m};
m = new Main();
System.out.println(m);
System.out.println(ms[0]);
}
}
Вывод:
Main@5acf9800
null
Массивы не сохраняют ссылку на переменную при их создании. Вместо этого они копируют значение ссылки в тот момент времени. Даже если значение ссылки изменится, значение в массиве останется прежним.
Если вы не собираетесь менять свой массив (вообще), вы можете сделать что-то вроде следующего:
//instantiation of fields t1, t2, t3, t4, t5 and fields array
private JTextField tf1, tf2, tf3, tf4, tf5;
private JTextField[] fields;
//In the constructor
tf1 = new JTextField();
//instantiate the others as well if you'd like
fields = new JTextField[] {tf1, tf2, tf3, tf4, tf5};
//clear method called after all objects are instantiated
private void clear() { for(JTextField f : fields) f.setText(""); }
...
// anytime you update tf1 later, update fields[0].
// anytime you update tf2 later, update fields[1].
// ... ... ...
Обычно было бы лучше просто сохранить переменные или просто сохранить массив / коллекцию. Управление одним набором переменных уже достаточно раздражает;зачем создавать себе сложнее, создав два сета?