我正在创建一个应用程序,其中有一个菜单栏,可以选择磁盘检查但是当执行操作时,我需要更改Label" lbldiskchecking"中的文本。但标签中的文字没有改变,但我的其他代码工作正常。
private void goToDiskCheck(ActionEvent event) throws IOException, InterruptedException {
lbldiskchecking.setVisible(true);
lbldiskchecking.setText("chal ja");
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/finalproject/view/DiskCheck.fxml"));
AnchorPane cmdPane = (AnchorPane) fxmlLoader.load();
Runtime run = Runtime.getRuntime();
Process p = null;
String cmd = "E:\\work\\programming\\NetBeansProjects\\FinalProject\\src\\batchfiles\\dskchk.bat";
try {
p = run.exec(cmd);
p.getErrorStream();
int exitVal = p.waitFor();
System.out.println("RUN.COMPLETED.SUCCESSFULLY");
}
catch (IOException e) {
e.printStackTrace();
System.out.println("ERROR.RUNNING.CMD");
p.destroy();
}
try {
borderPane.setCenter(cmdPane);
} catch (Exception e) {
e.printStackTrace();
}
}
标签在我的FXML文件中定义
<center>
<Label fx:id="lbldiskchecking" text="Checking Disk ...." visible="false" BorderPane.alignment="CENTER">
<font>
<Font name="AR BERKLEY" size="27.0" />
</font>
</Label>
答案 0 :(得分:0)
这是一个猜测,因为您没有发布足够的代码来重现问题。
看起来您的标签位于边框窗格的中心。在操作处理程序中,您加载新的FXML文件并将文件的内容放在边框窗格的中心。这将替换标签,因此它不再是场景图的一部分。您需要将标签放在场景的不同部分。