在 javafx 控制器中初始化

Initializing in javafx controller

我正在使用 netbeans 中的 javafx fxml 项目构建应用程序。 作为其中的一部分,我正在控制器中打印一个节点。为此,我正在更改节点布局,以使其适合半页。现在打印后,如何返回到原始布局。更具体地说,有没有办法初始化所有设置。我在 Javafx 和 Java 方面的专业知识仅限于 cut/paste :( 如果给出代码示例,非常感谢。link Best way to initialize GUI in JavaFX? 似乎包含答案但是我看不懂。

public void print(final Node node) {
Printer printer = Printer.getDefaultPrinter();
PageLayout pageLayout = printer.createPageLayout(Paper.NA_LETTER,   PageOrientation.PORTRAIT, Printer.MarginType.DEFAULT);
double width = node.getBoundsInParent().getWidth();
double height = node.getBoundsInParent().getHeight();
double scaleX = pageLayout.getPrintableWidth() / node.getBoundsInParent().getWidth();
double scaleY = pageLayout.getPrintableHeight() /(2* node.getBoundsInParent().getHeight());
node.getTransforms().add(new Scale(scaleX, scaleY));

PrinterJob job = PrinterJob.createPrinterJob();
if (job != null) {
boolean success = job.printPage(node);
if (success) {
job.endJob();
}
}

 node.getTransforms().add(new Scale(width, height)); //This is not working

}

看来你不需要重新初始化所有东西;您只需要撤消对打印所做的更改。为此,请保留对比例变换的引用并在完成后将其删除:

即替换

node.getTransforms().add(new Scale(scaleX, scaleY));

Scale scale = new Scale(scaleX, scaleY);
node.getTransforms().add(scale);

并替换

node.getTransforms().add(new Scale(width, height));

node.getTransforms().remove(scale);