java - JavaFX 读取文本文件并将其显示到多个文本字段
问题描述
我有一个包含 4 行随机单词的文本文件,一行一行,我需要能够读取每一行并将其显示到其文本字段(第一行进入第一个文本字段等),但它只是读取最后一行并将其显示到任何文本字段中。
“myfile.txt”
一个
二
三
一二三
TextField label1Text = new TextField();
TextField label2Text = new TextField();
TextField label3Text = new TextField();
load.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent l) {
String line = "";
try {
BufferedReader reader = new BufferedReader(new FileReader("myfile.txt"));
while ((line = reader.readLine()) != null) {
label1Text.setText(line);
label2Text.setText(line);
label3Text.setText(line);
labelO2Text.setText(line);
}
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
});
primaryStage.show();
}
}
解决方案
您当前的代码依次读取每一行,并为每一行将所有标签的文本设置为该文本行。
相反,您需要依次获取每个标签,并将其文本设置为文件的下一行。你可以这样做:
try (BufferedReader reader = new BufferedReader(new FileReader("myfile.txt"))) {
List.of(label1Text, label2Text, label3Text, label02Text)
.forEach(label -> {
try {
label.setText(reader.readLine());
} catch (IOException exc) {
// handle exception
}
});
}
推荐阅读
- arrays - 从 3D Numpy 数组的一维切片
- sql - 我们可以在 postgresql 中使用什么来代替 dba_role_privs?
- neo4j - 如何使用 Cypher 在 Neo4j 中找到一系列连接节点的头部?
- python - 提高数据序列化函数运行时内存
- node.js - 未找到命令:排毒
- python - 记录到文件(通过 sys.stdout)添加额外的空行
- django - 如何对 Django 查询集中选择的值应用函数?
- html - 删除 Bootstrap 4 行中的垂直空间
- amazon-web-services - 带有 aws amplify 和 fcm 的 Android 和 ios 推送通知
- javascript - 基于组对json进行排序