我试图拍摄一个自定义窗格的快照(我将它放在BorderPane的中心),但是每次我得到的都是一个空白的PNG图像。我用一个按钮尝试了相同的代码,它的快照被成功地获取并保存。我检查了边界,注意到窗格的边界有最大值(父边界和局部边界):
[minX:-9.9999997952E10, minY:-9.9999997952E10, minZ:0.0, width:1.99999995904E11, height:1.99999995904E11, depth:0.0, maxX:9.9999997952E10, maxY:9.9999997952E10, maxZ:0.0]
我认为这样做的原因是窗格的布局设置得如此,因此它填充了BorderPane的中心空间。我还在文档中发现了以下内容,这支持了我的怀疑:
窗格的最大宽度和高度不受限制,这表明父窗格的大小可能会超出其首选大小,以填充分配给它的任何空间。
这是拍摄快照的相关代码:
final WritableImage SNAPSHOT = mNodeToExport.snapshot(new SnapshotParameters(), null);
final File FILE = new File(mPathTextField.getText());
try {
ImageIO.write(SwingFXUtils.fromFXImage(SNAPSHOT, null), "png", FILE);
return FILE;
} catch (IOException exception) {
System.err.println("Error while exporting image of logicboard: " + exception.getMessage());
return null;
}
创建后快照的内容是:调试图像,我认为这很奇怪,因为它的宽度和高度值应该远远大于1。
我尝试拍摄我尝试导出的窗格的子节点的快照,它适用于具有“非无限”边界的子节点,但为具有“无限”边界的子节点html" target="_blank">返回相同的图像。
如果因为“无限”的边界值而没有正确地拍摄快照,如何临时更改快照的窗格边界?如果界限不是问题,那么问题会是什么呢?
显然,您可以传递一个矩形2D作为快照的视口。因此,以下操作完成了这项工作:
SnapshotParameters params = new SnapshotParameters();
params.setViewport(mLogicBoardView.getViewPort());
final WritableImage SNAPSHOT = mLogicBoardView.snapshot(params, null);
final File FILE = new File(mPathTextField.getText());
try {
ImageIO.write(SwingFXUtils.fromFXImage(SNAPSHOT, null), "png", FILE);
return FILE;
} catch (IOException exception) {
System.err.println("Error while exporting image of logicboard: " + exception.getMessage());
return null;
}
其中我在getViewPort()函数中手动计算视口。
我已经用FXML创建了一个布局,它由一个带有sideMenu的BorderPane和一个用于其他内容的innerBorderPane组成... 但是,由于我刚刚开始使用JavaFX中的FXML,所以我只需要知道如何做下一件事... custom.FXML(这是主要的FXML布局) sideMenu.FXML(这是sideMenu FXML布局) java(这是sideMenu JavaFX控制器)
我很惊讶,节点的原始大小显然是在中控制的。我们有两个愚蠢的方法和仅此而已。 事件在哪里,可观察的属性在哪里,所有这些进步的东西在哪里?被遗忘了?欢迎视窗3.1应用编程接口? 我的印象是不是错了?请修理我。 如何绑定节点边界?如何同步调整一个节点的大小和另一个节点的大小?如何将一个节点放入另一个节点?如何使内部节点推送外部节点的大小? 如何将一些动作与节点调整大小联系起来?
我正在尝试手动对齐JavaFX窗格上的节点,但似乎无法获得节点的实际外部边界。 我不知道如何更好地解释这个问题,而不是展示我创建的以下示例来演示它: 此窗口由以下代码生成: 如何获得节点的实际外部边界?
不知道如何表达这个问题。如果不清楚请原谅。 如下图所示,我想拖动一个节点(圆圈)跨过父节点(窗格),一旦节点跨过父节点的边界,外部的部分就会出现在相反的一端。
前言 为了配置kubernetes中的traefik ingress的高可用,对于kubernetes集群以外只暴露一个访问入口,需要使用keepalived排除单点问题。本文参考了kube-keepalived-vip,但并没有使用容器方式安装,而是直接在node节点上安装。 定义 首先解释下什么叫边缘节点(Edge Node),所谓的边缘节点即集群内部用来向集群外暴露服务能力的节点,集群外部的