问题标签 [scalafx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - 如何在 ScalaFX 中正确声明属性更改监听器?
以这段代码为例,我编写了以下代码来跟踪滑块的变化并将结果放入“speed: Int”变量中:
但这会导致错误:
如果我更改ObservableValue[_ <: Number]
为此ObservableValue[_ <: Number, _ <: Number]
错误消失但另一个出现:
有任何想法吗?
更新:我已经通过ObservableValue
用javafx.beans.value.ObservableValue
. 它现在编译并且没有抛出任何错误,但仍然无法工作 - 代码永远不会被调用。
scala - 一个最简单的scalafx示例无法编译
我正在用一个最简单的例子尝试scalafx,但它无法编译,错误如下:
错误:scalac:在类文件“StageIncludes.class”中遇到对 javafx.stage.PopupWindow.AnchorLocation 的错误符号引用。无法访问对象 javafx.stage.PopupWindow 中的类型 AnchorLocation。当前类路径可能缺少 javafx.stage.PopupWindow.AnchorLocation 的定义,或者 StageIncludes.class 可能已针对与当前类路径中找到的版本不兼容的版本进行编译。
我用谷歌搜索,发现有人说我们需要添加jfxrt.jar
到类路径,但这仍然不起作用。
我的代码:
构建.sbt
应用程序.scala
就这样。
scala - 如何从 ScalaFX 中动态创建的元素事件处理程序访问 FXML 定义的元素?
我正在尝试在 FXML 定义的表单控制器中为动态创建的按钮编写事件处理程序,它似乎工作正常,但一旦我尝试访问另一个元素,它就会失败。
例如这段代码工作正常:
但是通过在函数开头抛出 NullPointerException 来替换println("123")
就足以if(slider != null) println("123")
使应用程序失败。initialize
我想要达到的是调整按钮按下时的滑块值(同时创建这个特定的按钮动态地从 FXML 加载表单的其余部分),我认为我的错误是使用了错误的方法来做到这一点,但我已经发现仅对滑块变量进行的空检查会导致失败,不一定是其值调整。
这对我来说看起来很奇怪,好像滑块变量为空我会通过检查得到这个事实,如果它无法访问,应用程序将无法编译,但我得到的是不同的。
java - 调用一个从scala代码接受``类型参数的java方法?
我正在编写一些scalafx
代码,它需要从 java 调用一个方法:
但它报告addListener
参数的编译错误:
类型不匹配,预期:ChangeListener[_ >: String],实际:ChangeListener with Object { def stateChange(e:ChangeEvent) Unit }
这addListener
是一个java方法:
如何解决?
scala - TableView 中的自定义单元格
我正在开发一个 scalafx 项目,我想要一个 TableView,其中一些单元格包含一个按钮。我找到了一个如何将图形放入tablecell的示例。当我使用示例并且只替换调用以graphic = ...
使用按钮时,有时我会得到每列都是空的单元格,除了按钮所在的列:
我该如何解决?(我已经检查过它不仅仅是名称值上的空字符串,因此最后一个登录按钮不应该在那里)
以下是修改为使用按钮的示例代码:
javafx - exportjars := true 的含义是什么?
我刚刚开始使用 sbt 插件来打包 JavaFx/ScalaFx 应用程序sbt-javafx。这在 Java 7 下。
虽然该插件似乎运行良好,但它无法正确打包多模块项目。他们发现的一种解决方法是exportsJars := true
在 JavaFX 模块所依赖的所有模块中使用。
我还有可以为我生成 JavaFX 应用程序的 IntelliJ IDEA,尽管这会破坏自动构建。我非常希望可执行文件自动化。
我需要了解该参数对我的 sbt 构建的广泛影响。为什么需要设置true
?
这是帮助定义:
确定此项目的导出类路径是否包含类 (false) 或打包的 jar (true)。
听起来默认情况下它是false
. 为什么?
ps 如果有人有更简洁的解决方案来使用 sbt 打包 JavaFX/ScalaFX 应用程序,请随时分享。
popup - 有没有一种简单的方法可以在 JavaFX 中显示提示文本?
在 Borland VCL 库中,几乎所有控件都有一个提示属性。在运行期间,当您将鼠标放在相应控件上时,当您移动鼠标时,一个带有提示文本的小框会弹出并再次消失,就像 Windows 资源管理器和其他程序中的帮助消息一样,当鼠标光标悬停在按钮上时.
JavaFX中是否有类似的概念(实际上,我正在使用ScalaFX)?
当然,我可以创建一个没有装饰的新舞台,添加一些鼠标侦听器等,但它不是已经在某个地方可用了吗?
scala - Creating custom ScalaFX controls
What exactly is the right way to create a custom ScalaFX control? I'm coming from Swing and Scala Swing, where custom components are simply created by extending Component
or Panel
. But when I try to extend ScalaFX's Control
, I can't extend it without a JavaFX Control
delegate. Should I just create custom ScalaFX components by extending the base JavFX classes instead of the ScalaFX classes?
scala - 如何更改 ScrollPane (JavaFX/ScalaFX) 的背景?
我想更改 ScrollPane 的背景颜色。这是我尝试这样做的代码的一部分:
文本显示正常,但更改背景颜色的两次尝试均无效,使用:
Scala 版本 2.10.3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_05)。
用Scenic View 查看,发现 ScrollPane 下方的场景图中意外出现了两个 StackPane,所以层次结构是:
- ScrollPane //我创建的
- StackPane //UNEXPECTED -- 剪辑内容
- StackPane //UNEXPECTED -- 全尺寸内容
- 组//我创建的
- 文本//我创建的
如果我将任一 StackPane-s 的背景更改为"-fx-background-color: blue"
(使用Scenic View),它会产生效果,但不会影响 ScrollPane 的样式。但是如何从代码中做到这一点?如果我做
, 它说
群@567fa81a
有没有一种简单的方法可以访问 StackPanes 或更改背景?我可以“插入”一个填充的大矩形,但这看起来很丑陋并且调整大小变得复杂,背景有什么问题?
scala - 使用 sbt-native-packager 和 ScalaFXML 进行宏扩展时出现异常
我在 github上创建了一个小项目,用于探索 ScalaFx 以及我想在更大项目中使用的其他一些东西。目前,它包括一个子项目,这是一个使用 ScalaFX 和 ScalaFXML 编写的简单计算器。
该项目使用 SBT 命令构建并运行良好calculator/run
。
我现在正在尝试使用 sbt-native-packager 打包它。我添加了一个名为“exemple-cli”的简单项目(来自 sbt-native-packager 的文档),它可以很好地打包exemple-cli/stage
(我在 exemple-cli/target/universal/stage 中得到了预期的结果)。但是,当我运行命令时calculator/stage
,出现以下错误:
显然,ScalaFXML 用于为控制器生成代理类的宏存在错误,但这仅在使用 sbt-native-packager 打包时发生,而不是仅在使用 SBT 编译时发生......有谁知道可能导致这种情况的原因?