- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 Scene Builder (v11.0.0) 为 JavaFX (v12) 中的场景创建 FXML 文件,但是,尽管指示所有容器 USE_COMPUTED_SIZE
以获得首选的宽度和高度,渲染的场景(如在 Scene Builder 中所见,以及作为加载这些 FXML 文件的 JavaFX 应用程序运行时)在右侧和底部边缘被剪裁,以便切掉一些节点。
在 Scene Builder 中,渲染器似乎必须知道场景不符合允许的边界,因为编辑器显示蓝色边界标记,这些标记明显超出了渲染矩形。
Scene Builder 中的 View 显示底部需要更多空间以便为按钮提供足够的空间(按钮的底部边缘和 TitledPane
的下边缘缺失)。右侧需要更多空间以适应 DatePicker
和 TitledPane
的右边缘。蓝色边界标记清楚地显示了实际内容结束的位置,因此不清楚为什么显示区域被计算为比这短几个像素。
一旦 FXML 文件用于填充 JavaFX 应用程序中的窗口,就会看到同样的事情:窗口的计算大小是一些太少的像素,无法正确适应整个场景。
如果已正确计算蓝色边界标记以显示需要额外的显示区域宽度和高度,我如何告诉 FXML 在渲染时需要此额外空间?
这是 Scene Builder、FXML 或 JavaFX 中的已知错误/限制吗?或者除了为首选尺寸选择 USE_COMPUTED_SIZE
之外,我还需要做些什么吗?
为了明确这一点,请参阅下面的示例 FXML,它显示了所说明的问题。
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.TitledPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?>
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
<children>
<TitledPane animated="false" collapsible="false" text="untitled">
<content>
<HBox>
<children>
<fx:include source="subscene.fxml" />
</children>
</HBox>
</content>
</TitledPane>
<TitledPane animated="false" collapsible="false" text="untitled">
<content>
<HBox>
<children>
<fx:include source="subscene.fxml" />
</children>
</HBox>
</content>
</TitledPane>
<TitledPane animated="false" collapsible="false" text="untitled">
<content>
<HBox alignment="BASELINE_RIGHT">
<children>
<Button mnemonicParsing="false" text="Button" />
<Button mnemonicParsing="false" text="Button" />
</children>
</HBox>
</content>
</TitledPane>
</children>
</VBox>
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.DatePicker?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.VBox?>
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Label text="Label" />
<DatePicker />
</children>
</VBox>
最佳答案
这确实是 JavaFX 中的一个错误,特别是 DatePicker
,因为这个简单的示例可以重现该问题:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.DatePicker;
import javafx.scene.layout.Region;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
VBox root = new VBox(new DatePicker());
// Problem shows up when using USE_COMPUTED_SIZE (the default) as well
root.setMinSize(Region.USE_PREF_SIZE, Region.USE_PREF_SIZE);
root.setMaxSize(Region.USE_PREF_SIZE, Region.USE_PREF_SIZE);
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
}
导致:
注意:将 DatePicker
放入哪个父级似乎无关紧要。其他控件也不会出现此问题。
此问题的解决方法似乎是在调用 show()
之后调用 Window.sizeToScene()
。我不明白为什么这会有所作为,但确实如此。不幸的是,这只会对实际应用有帮助,对 Scene Builder 没有帮助。
关于尽管指定了 USE_COMPUTED_SIZE,JavaFX 和 Scene Builder 仍会剪辑场景边缘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55403477/
; template person (deftemplate person (slot name (type STRING)) (slot gender (type SYMBOL)(allowed-s
我正在尝试使用 AudioRecord 从麦克风录制一些音频。录音有效,但音量太大,而且我的剪报很糟糕。我尝试使用 AutomaticGainControl,但它在我的设备上不可用。有没有其他方法可以
我正在开发一个小应用程序,用户可以在其中用手指在屏幕上移动背景。 background-position 由手指的位置定义。 我用的是angular,所以我有这种标签: 在我的 Cont
拥有 ag-grid v8.20 的 ag-grid(Angular 组件) 不幸的是,如果上下文菜单大于网格,它会被剪裁: (截图应该在这里,但我不能上传它,imgur bug?) 有没有办法让上下
我需要从 ListBox 中浮出一些内容如 DataTemplate 中指定的那样对于 ListBox.ItemTemplate .我正在使用 RenderTransform但内容被剪掉了 ListB
我有这个作业(我是学生),在 CLIPS 中,但是我无法取得任何进展,尽管在谷歌上搜索并花了一些时间。 (clear) (deftemplate book (multislot surname
我正在尝试在具有圆形路径的图像上使用“剪辑路径”。我知道有可能使用 svg 剪辑路径,但我认为它不可能让它真正响应 - 所以我决定在图像下方的 div 上使用 svg 图形 - 但我仍然有移动 Vie
我正在尝试在具有圆形路径的图像上使用“剪辑路径”。我知道有可能使用 svg 剪辑路径,但我认为它不可能让它真正响应 - 所以我决定在图像下方的 div 上使用 svg 图形 - 但我仍然有移动 Vie
背景 我们有一个 TIME 数据类型的列来指示耗时。 问题 当我们尝试插入大于 24 的小时数时,例如“25:00:00”,MySQL 会将此值裁剪为“01:00:00”,这不是我们想要的。 尝试的解
基本上,我正在创建一个包含两个图像的 View 。图像一显示在占据 View 左上角的直角三角形中,图像二显示在占据 View 右下角的直角三角形中。 想象一下沿对角线切割正方形,结果的每一半中存在不
我目前正在为单页网站制作剪切路径: http://grafomantestsite3.be/ 如您所见,这适用于 chrome,但不适用于 firefox、opera 等。 我做了一个代码笔来说明我的
我的 CSS 文件中有一行: clip: rect(0 0 0 0); 我看到 clip 现在已贬值,所以我尝试使用 clip-path。 clip-path 的等价物是什么? 是吗: clip-pa
我有两个 div,子 div 在父 div 中。 div child 比他的 parent 大。所以我决定在 div 父级中放置一个滚动条,因为我可以更好地看到 div 子级的内容。 问题是现在我需要
我正在为全屏背景图像在 WordPress 中编写 CSS。为了摆脱左侧的黑色矩形(菜单/侧边栏),我使用了下面的 CSS。 它在 chrome、IE 和移动设备上运行良好,但在 mac/safa
我想制作一个用户程序,它提取元素 a,其中元素 b(由参数给定)作为列表中的一对。 比如,如果我将 c 作为参数并列出 ((c a) (c b) (d f) (d g)),结果应该是 'a' 'b';
我是 Android 新手,我有两张图片,一张是空图片,另一张是代表进度条的完整图片。 如何使用 canvas.drawBitmap 只绘制整个图像的一部分? 我不想每次都调整位图图像的大小。 最佳答
我调整了我的字符串的大小以最大限度地适应高度(1 行),以便截断任何过大的宽度(如在字形中间),lineBreakMode:UILineBreakModeClip 应该这样做。相反,文本似乎通过仅绘制
我使用的导航 Controller 略微偏离屏幕边缘。当我尝试为导航 Controller 框架之外的 subview 设置动画时,它们会被剪裁。我试过设置: navigationController
我正在尝试使用 CSS3 转换为 CSS clip 设置动画,但没有成功。图像只是剪辑而没有过渡。 我错过了什么? #clipped { position:absolute; widt
我有一个 UITextView 显示一些大小可以变化的动态内容。textview 不允许滚动,它的大小与内容无关。考虑到它的自动布局约束,例如, TextView 在 iphone5 和 iPhone
我是一名优秀的程序员,十分优秀!