|
From: Jonathan C. <jco...@gm...> - 2020-04-14 14:51:08
|
So, I have a little rails-based app I want to make. I want the app to
start, take a screen shot of all the windows, then shut down.
For the swing-based stuff I have been able to get this to work...it's a
horrible hack, but it works. I have this in GameUIManager:
public void printGameState(File directory) {
PrintGame.printPanel(statusWindow.returnPanel(), new
File(directory, "status_window.jpg"));
PrintGame.printPanel(orUIManager.returnPanel(), new File(directory,
"or_window.jpg"));
FXStockChartWindow.runOnStage(stage -> {
PrintGame.printPanel(SwingFXUtils.fromFXImage(stage.getScene().snapshot(null),
null), new File(directory, "stock_market.jpg"));
return null;
});
}
PrintGame is a helper I have created. Note the FXStockChartWindow piece,
though... this is awful. Heh, the normal swing ones are bad enough, but in
FXStockChartWindow I added this function:
public static void runOnStage(Function<Stage, Void> fn) {
Platform.runLater(() -> fn.apply(stage));
}
That said, it doesn't work. I even tried to put this code in
FXStockChartWindow's start method:
PrintGame.printPanel(SwingFXUtils.fromFXImage(stage.getScene().snapshot(null),
null), new File("/Users/jcoveney/stock_market.jpg"));
Just to see if that would work, and it did not. Javafx uses a fairly
different model than the remaining code...I know there are plans to migrate
to javafx
So! I guess I have two questions:
1. is there an easier way to achieve the overarching goal of "a screenshot
of all the windows"?
2. assuming this general hacky method is ok, how do I get a screenshot of
the stock window?
Thank you!
|