Вы инициализировали массив JTextField. Но каждый элемент в массиве все еще не инициализирован.
private final static JTextField[] Input = new JTextField[10];
Input[0] = new JTextField(); //And then perform operation on 0th element
Чтобы пролить больше света на это,
Всякий раз, когда вы инициализируете какой-либо примитивный массив в Java, он будет выделять память непрерывно на основе переданного типа данных.
Например,
int[] intArray = new int[10]; // Assuming int is 4 bytes, 40 bytes allocated continuously
double[] doubleArray = new double[10]; // Assuming double is 8 bytes, 80 bytes allocated continuously.
И обратите внимание, что intArray или doubleArray - это ссылка, которая будет указывать на начальную ячейку памяти выделенного значения. По этой причине при поиске по индексу массивы работают быстрее. когда вы делаете intArray [5], все, что он делает, это идет к начальному адресу intArray + (5 * sizeof (integer)), чтобы получить значение напрямую.
Однако в случае с объектами дела обстоят немного иначе. Когда я
Object[] objArray = new Object[10];
Это снова создаст 10 непрерывных ссылок в памяти. Предполагая, что ссылка составляет 2 байта, ей потребуется 20 байтов непрерывно. И все это просто ссылки, которые указывают ни на что, то есть они являются нулевыми. Наш долг - вызывать их явно.