- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发一个使用 JavaFX 播放视频的应用程序。我想将音量 slider 放置在边框 Pane 的右侧。目前,应用程序将调整大小以适应窗口的大小,该窗口将与我的音量 slider 重叠。
我有一个 Controller ,负责处理应用程序执行的所有操作并实现Initialized 接口(interface)。这是我的initialize() 方法的样子。
@Override
public void initialize(URL locate, ResourceBundle resources){
String path = new File("src/media/dance.mp4").getAbsolutePath();
media = new Media (new File (path).toURI().toString());
player = new MediaPlayer(media);
mediaView.setMediaPlayer(player);
DoubleProperty width = mediaView.fitWidthProperty();
DoubleProperty height = mediaView.fitHeightProperty();
width.bind(Bindings.selectDouble(mediaView.sceneProperty(), "width"));
height.bind(Bindings.selectDouble(mediaView.sceneProperty(), "height"));
volumeSlider.setValue(player.getVolume() * 100);
volumeSlider.valueProperty().addListener(new InvalidationListener() {
@Override
public void invalidated(Observable observable) {
player.setVolume(volumeSlider.getValue() / 100);
}
});
}
我尝试在 mediaView.fitWidthProperty()
之后直接减去 64px和mediaView.sceneProperty()
,但都给了我一个错误,因为它们不是 double 类型。我试过mediaView.fitWidthProperty().subtract(64)
,但它说我需要将数据类型从 DoubleProperty 更改为 DoubleBind,这与 Bindings.selectDouble()
不兼容需要 DoubleProperty 的方法。
我怎样才能让它发挥作用?
最佳答案
已编辑
还有更简单的方法!只需直接绑定(bind)到属性即可:
mediaView.fitWidthProperty().bind(
mediaView.getScene().widthProperty().subtract(64));
这是一个完整的应用程序来演示:
public class FXWidthBind extends Application {
@Override
public void start(Stage stage) {
Media media = new Media("http://i.imgur.com/OJTwZuc.mp4");
MediaPlayer player = new MediaPlayer(media);
MediaView mediaView = new MediaView(player);
Pane root = new Pane();
Scene scene = new Scene(root);
root.getChildren().add(mediaView);
stage.setWidth(1000);
stage.setHeight(800);
stage.setScene(scene);
stage.show();
mediaView.fitWidthProperty().bind(mediaView.getScene().widthProperty().subtract(64));
mediaView.fitHeightProperty().bind(mediaView.getScene().heightProperty());
}
public static void main(String[] args) {
launch(args);
}
}
关于JavaFX : Subtracting from DoubleProperty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43926701/
我目前正在开发一个使用 JavaFX 播放视频的应用程序。我想将音量 slider 放置在边框 Pane 的右侧。目前,应用程序将调整大小以适应窗口的大小,该窗口将与我的音量 slider 重叠。 我
我最近试图将我的双重属性的范围限制为 (0.0 - 1.0)。超出此范围的更改不应有任何影响,或引发错误。 目前我有两种方式: 只读,并且只允许在访问器上进行更改: private ReadOnlyD
这个问题在这里已经有了答案: JavaFX UI Frozen when performing Task in new Thread (1 个回答) 5年前关闭。 我正在尝试以编程方式为 JavaFX
我在显示小数点后第二个 doubleProperty 时遇到问题。 粗略的布局如下所示: public static void main(String[] args) { private Ta
我创建了一个代表数字键盘的用户控件。我希望将各个按钮的宽度和高度实现为 DoubleProperty,以便稍后进行配置。 我遇到的问题是我无法将该属性绑定(bind)到 GridPane 列和行的 p
我有一个ObservableSet itemSet 包含 DoubleProperty prop1 对于任意数量的 Item 实例. 我想创建另一个DoubleProperty 总计将反射(refle
给定一个添加到 DoubleProperty 的监听器,是否可以像使用 Observable 列表那样将 DoubleProperty 更改的数量传递给监听器? someDoubleProperty.
我使用 JavaFX Text 对象,并将其绑定(bind)到进度指示器: 我希望它显示工作完成了多少百分比(%)。 代码: text.textProperty().bind(indicator.p
是否有任何内置函数可以在 DoubleProperty 之间创建双向绑定(bind)?和 ObjectProperty ? 对于单向绑定(bind)来说,这很容易: public void bindB
Description 我有一个Label,其文本绑定(bind)到ProgressBar ProgressProperty。然后我将进度条的值乘以 100 ,并且我希望进度条将进度条的值 * 100
我是一名优秀的程序员,十分优秀!