【发布时间】:2016-11-01 15:48:30
【问题描述】:
我正在使用计算器,我想在侧面打开一个日志阶段,现在我的问题是我需要更新阶段,我认为最简单的方法是检查阶段是否正在显示,并且如果是然后隐藏它,那似乎不起作用,这是我的代码:
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 计算器。 github.com/sedj601/CalculatorFx
-
创建新窗口的不是对
show()的调用;这是对new Stage()的调用。对show()的调用只是使窗口出现在屏幕上:如果它已经显示,则没有效果。 -
无论记录器窗口是否可见,为什么不只更新文本字段?
-
问题是我不知道如何“只是”从另一个类更新文本区域
标签: java javafx java-8 javafx-8