Вы можете прочитать файл построчно, используя FileReader / BufferedReader или Сканер:
String filename = "path/to/the/file/with/numbers.txt";
try(BufferedReader reader = new BufferedReader(new FileReader(filename))) {
String line;
int currentIndex = 1;
while((line = reader.readLine()) != null) {
// see further on how to implement the below method
setTextFieldValue(currentIndex, line.trim());
currentIndex++
}
}
Для реализации setTextFieldValue у вас есть несколько вариантов:
- writeрегистр переключателя для сопоставления индекса с соответствующим полем
- создание карты индекса -> поля или массива (как предложено @zlakad в комментариях)
- Использование отражения для получения полейпо их именам
Все вышеперечисленные варианты имеют свои плюсы и минусы, которые зависят от контекста.Ниже я покажу, как реализовать это с помощью отражения, потому что два других варианта довольно просты:
void setTextFieldValue(int index, String value) {
// assuming the fields belong to the same class as this method
Class klass = this.getClass();
try {
Field field = klass.getField("jTextField" + index);
JTextField text = (JTextField)field.get(this);
text.setText(value);
} catch (NoSuchFieldException | IllegalAccessException e) {
// throw it further, or wrap it into appropriate exception type
// or just and swallow it, based on your use-case.
// You can throw a custom checked exception
// and catch in the caller method to stop the processing
// once you encounter index that has no corresponding field
}
}