我正在工作的计算器,我想有一个日志阶段打开的一面,现在我的问题是,我需要更新阶段,我想最简单的方法是只检查如果舞台呈现,并且如果是则隐藏它,只是似乎并不奏效,这里是我的代码:JavaFX隐藏表单,然后立即再次显示
public void start(Stage logStage) {
boolean open = logStage.isShowing();
System.out.println(open);
if(open == true){
logStage.hide();
System.out.println("Should be hidden now!");
}
logStage.setTitle("Log");
GridPane grid = new GridPane();
grid.setAlignment(Pos.TOP_CENTER);
grid.setHgap(5);
grid.setVgap(5);
TextArea logText = new TextArea();
for (String log : Logger.fraLog()) {
logText.setText(logText.getText() + log);
}
grid.add(logText, 0, 0, 10, 10);
Scene scene = new Scene(grid);
logStage.setHeight(210);
logStage.setWidth(300);
logStage.setX(1135);
logStage.setY(350);
logStage.setScene(scene);
logStage.setResizable(false);
logStage.setAlwaysOnTop(true);
logStage.show();
}
并运行此方法后,3倍我的输出是:
false
false
false
我称之为方法的方式是:
Logger logger = new Logger();
logger.start(new Stage());
任何帮助表示赞赏
在计算器的右上方创建一个小按钮,当按下时打开日志。使用工具提示来解释按钮是什么。例如:“打开日志”,“关闭日志”。在这里查看我的javafx计算器。 https://github.com/sedj601/CalculatorFx – Sedrick
这不是调用show()创建一个新窗口;这是'new Stage()'的调用。对'show()'的调用只是使窗口出现在屏幕上:如果它已经显示,它不起作用。 –
无论记录器窗口是否可见,为什么不更新文本字段? – GOXR3PLUS