0
如何从.txt文件读取多行文本,选择包含某个字符串的文本,最后将它们作为只读文本添加到JavaFX窗口?打印到JavaFX窗口
我知道如何选择包含特定字符串的行,但我不知道怎么回的文本或如何文本的变量量添加到标签
我所需要的最终产品的多条线路显示是这样的:
String1a, String2a,...\n
String1b, String2b,...\n
-or-
String1a
String2a
\n
String1b
String2b
.
.
.
它目前显示像第二个选项,但它是所有“空” 这里是我的代码的一部分:
bt4.setOnAction(
new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent e) {
VBox vb3 = new VBox();
if(dent == true) {
a = dentist.selectAppt(id.getText());
for(int i=0; i< 4;i++) {
System.out.println(a[i]);
}
Label app = new Label(WORDS);
app.setWrapText(true);
vb3.getChildren().add(app);
}
if(dent == false) {
//TODO
}
Stage stage = new Stage();
vb3.setSpacing(10);
BorderPane p = new BorderPane();
Pane p1= new Pane();
p1.getChildren().add(vb3);
p.getChildren().add(p1);
Scene scene2 = new Scene(p,500,500);
stage.setScene(scene2);
stage.show();
}
});
}
private final String WORDS =
a[0]+"\n" +
a[1]+"\n" +
a[2]+"\n" +
a[3]+"\n";
public static void main(String[] args) {
launch(args);
}
}
这是从.txt文件选择字符串数组的方法,包括:
public String[] selectAppt(String s) {
String[] sa = new String[4];
try {
Scanner scan = new Scanner(file2);
while(scan.hasNextLine()) {
String line = scan.nextLine();
if(line.contains(s)) {
//System.out.println(line);
StringTokenizer st = new StringTokenizer(line,":");
pid = st.nextToken();
appt = st.nextToken();
did = st.nextToken();
pcode = st.nextToken();
sa[0] = pid;
sa[1] = appt;
sa[2] = did;
sa[3] = pcode;
//System.out.println("\tPatient ID:\t"+pid);
//System.out.println("\tTime and Date:\t"+appt);
//System.out.println("\tDentist ID:\t"+did);
//System.out.println("\tProcedure:\t"+pcode);
//System.out.println();
}
}}
catch (FileNotFoundException e) {
System.out.println("error");
}
return sa;
}
它目前是这样的,它只是返回1行文本的随后结束。我需要改变这一点,但我不知道如何。
完美的作品!感谢您的帮助。可能是我收到的最欢乐的答案。 – HooperDeuced