草庐IT

rx-javafx

全部标签

java - 如何使用 javafx.beans.binding.Bindings.select(...) 进行简洁的值绑定(bind)

概览作为一名十年的Swing开发人员,我对JavaFX2.0引入的功能感到非常兴奋,尤其是丰富、流畅、高级的数据绑定(bind)功能。仅此一项功能就值得学习新API的成本(自从放弃FX脚本以来成本要低得多)。它将对我的模型/View同步代码的可读性和可维护性产生直接影响。到目前为止,我在第一级和基本派生绑定(bind)方面取得了巨大成功,但我正在努力找出将一个值绑定(bind)到数据图中两个或更多间接级别的值的“JavaFX方式”。问题如下面的代码示例所示,我正在尝试使用javafx.beans.binding.Bindings.select()将Label的文本值与ComboBox中

具有自定义对象的 JavaFX 自定义单元工厂

我正在尝试根据自定义objects列表创建一个由自定义Cell组成的自定义ListView。自定义对象是名为Message的类名,其中包含消息的一些字段content、recipient、timestamp和状态(已读、已发送等)。看完这个问题后:CustomizeListViewinJavaFXwithFXML我已经成功了:使用自定义单元格创建了一个ListView,其中单元格设计在FXML文件中定义;关联一个Controller,以便每个单元格数据都可以用集合的当前项填充;但是,我无法链接两者:我似乎找不到将ListView的当前项目发送到CellController的方法。这是我

java - 如何使 JavaFX Slider 以离散的步骤移动?

我正在使用JavaFx制作一个GUI,我需要只允许选择integers的slider。我知道我可以使用snapToTicks,但在拉动“旋钮”时,它仍然可以表示一个非整数值。我想摆脱它。它弄乱了链接到它的其他组件。基本上,我想要类似Swing的JSlider的东西,但带有JavaFx。可能吗?我一直在寻找,但找不到任何东西。 最佳答案 您可以简单地向valueProperty添加一个监听器Slider然后你可以设置integervalue新的Number值:slider.valueProperty().addListener((ob

JavaFx - 更新 GUI

我只想在程序运行时更新标签。我正在阅读一些文件,我希望它显示正在阅读的文件的名称。但是,它只使用下面的代码显示最后一个文件(基本上GUI在整个过程完成之前不会响应):staticTextm_status_update=newText();//Ideclaredthisoutsidethefunctionsodontworrym_status_update.setText("Currentlyreading"+file.getName());我有大约4-5个文件,我只想显示名称。看到类似的问题DisplayingchangingvaluesinJavaFxLabel,最佳答案推荐如下:L

在 Swing 中处理 JFXPanel 时出现 JavaFX IllegalStateException

我刚刚遇到了JavaFX和Swing的一个奇怪之处。处理已添加到JFrame或JPanel的JavaFX面板时,重新添加新的JFXPanel将抛出IllegalStateException:“已调用Platform.exit”。在我的例子中,这是在我删除了一些内部带有JFXPanel的JPanel然后尝试重新添加它们之后发生的。 最佳答案 幸运的是,我在Oracle论坛中找到了解决方案。链接:https://kr.forums.oracle.com/forums/thread.jspa?threadID=2393986在JavaFX

java - 如何使 JavaFX 控件居中

更具体地说,为什么我的JavaFX控件没有居中?这里有两个屏幕截图,第一个刚开始(我将窗口移到一个更明显的位置但尚未调整大小),第二个是刚刚调整大小以显示我的问题。如果您帮助我确保它在首次显示时(在所有DPI上)大小合适,可加分:方便的是,相关代码包含在这些屏幕截图中。如果您仍然需要它作为文本,请继续:privatevoidinitJFXPanel(JFXPanelholder){{{rootGrid=newGridPane();rootGrid.setAlignment(Pos.CENTER);rootGrid.setPadding(newInsets(16));rootGrid.s

java - 获取JavaFX中节点的高度(生成布局pass)

如何在JavaFX中获取节点的高度或首选高度,我有3个VBox,我想将节点添加到最自由的面板,示例:ChildrensTotalHeightofthechildren's(Sum)VBoxA5890VBoxB4610VBoxC2720在这种情况下,最自由的是VBoxB,我用这种方法计算出最自由的Pane:privateintgetFreerColumnIndex(){if(columns.isEmpty())return-1;intcolumnIndex=0;intminHeight=0;for(inti=0;i此方法仅在我当时添加1个元素时才有效。但是如果我当时添加更多元素:for(

java - 如何在 RX java 链中使用 "if-else"?

我是RXJava/RXAndroid的新手。我想实现这种情况:根据RXJava中的某些条件选择不同的方式。例如,首先,我从网络中获取用户信息,如果这是VIP用户,我将继续从网络中获取更多信息,或者只在主线程中显示一些信息(打破链条。)这里的流程图:/image/0hztR.png我对此做了一些搜索,只发现“switchIfEmpty”可能有帮助。我写了下面的代码:getUserFromNetwork("userId").flatMap(newFunction>(){@OverridepublicObservableSourceapply(Useruser)throwsException

java - 在带有 JavaFX 的 Java 中使用命令行参数

我有以下代码:publicclassMainextendsApplication{@Overridepublicvoidstart(StageprimaryStage)throwsException{Parentroot=FXMLLoader.load(getClass().getResource("hive.fxml"));primaryStage.setTitle("Hive-viewer");primaryStage.setScene(newScene(root,1600,900));primaryStage.show();}publicstaticvoidmain(String

java - javafx 中使用了什么 javascript 引擎?

WebView有内置的javascript引擎。它使用什么引擎?openjdk和oraclejdk是一样的吗?它可以像JSR223引擎一样与WebView分开使用吗? 最佳答案 OracleJRE中的JavaScript运行时完整的OracleJavaRuntime8附带两个JavaScript引擎:Nashorn:“Nashorn的目标是使用nativeJVM在Java中实现轻量级高性能JavaScript运行时。该项目旨在使Java开发人员能够通过JSR-223将JavaScript嵌入Java应用程序,并使用jrunscrip