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