问题标签 [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.

0 投票
1 回答
456 浏览

scala - 奇怪的类型不匹配错误

我在. errorFixed_ 我的班级有一个我尝试放入此表列的内容。TableColumn[Error, Boolean]TableView[Error]Errorval fixed: Boolean

我试过了

但它失败了

根据文档,我真的不明白这ObservableValue[Boolean,Boolean]是一个超类型。ReadOnlyBooleanWrapper

如果我自己使用.asInstanceOf[ObservableValue[Boolean, Boolean]]它似乎可以工作。这里发生了什么?

用精简项目重现的要点

0 投票
1 回答
5029 浏览

scala - ScalaFx:具有一流函数的事件处理程序

我尝试在 scalaFx 应用程序中编写事件处理程序。我找到了以下解决方案:

但这似乎是非常 Java 风格的样板代码。有没有办法用这样的一流功能做到这一点?

编译器说:

javafx.scene.input.MouseEvent => scalafx.delegate.SFXDelegate[javafx.scene.input.MouseEvent] 与 javafx.scene.input.MouseEvent 没有可用的隐式视图。

0 投票
1 回答
1035 浏览

scala - 如何让 ScalaFX 在 SBT 控制台中发挥​​出色?

我正在为入门编程学生编写一个图像库来玩。(我从 DrRacket 的图像库中窃取了这个想法和模式。)

https://github.com/dupontmanualhs/dm-image

它主要是用 Swing 编写的(那是master分支),但我正在尝试将其转换为 ScalaFX(参见scalafx分支),并且存在一些问题。理想情况下,学生应该能够执行以下操作:

并显示一个带有火车引擎的对话框。我试过使用代码

https://github.com/scalafx/ScalaFX-Tutorials

stand-alone-dialog项目中,但如果我System.exit(0)在 I 之后包含dialog.showAndWait(),我会收到此错误:

(请注意,如果我尝试在控制台中运行Appfrom ,我会遇到同样的错误stand-alone-dialog,所以我猜测System.exit(0)在 SBT 控制台中调用不是一个好主意。)

如果我把这System.exit(0)条线排除在外,那么一切似乎都很好——大多数情况下。在我第一次显示对话框后,它不会使对话框成为焦点,所以我必须单击它来关闭对话框。但真正的问题是,当我:q退出控制台时,SBT 挂起,我必须Ctrl-C能够再次输入。(而且,是的,Ctrl-C完全退出 SBT,而不仅仅是控制台。)

我想我可能需要做的是专门为 ScalaFX 的东西创建一个线程。例如,我有一种方法将一个图像堆叠在另一个图像之上,IllegalStateException当我尝试调用该函数时,我得到了一个,即使它实际上并没有显示任何内容,只是创建了一个新Group的,前两个Nodes 适当堆叠。不幸的是,我不确定如何创建一个新线程并确保所有与图像相关的内容都通过它。

我已经设置好fork := truebuild.sbt,但这似乎与控制台没有什么不同。

== 更新 ==

我在 SBT 文档中找到initialCommandscleanupCommands尝试在控制台启动和结束时清理所有内容。这些值为:

其定义如下:

这是运行控制台然后尝试退出的结果:

这甚至不会退出控制台。您仍然必须使用 Ctrl-C,它会完全退出 SBT。

有些东西还在运行,但我不知道它是什么。嗯。

0 投票
2 回答
306 浏览

scala - 在 JFXApp 中未调用基类构造函数


DevAppFx 对象构造函数运行,包括 println ("Beginning ...

类 AppFx 构造函数不运行,包括 println(“创建阶段”)。可以调用 openEFO 方法,但阶段变量为空。

编辑这是一个简化。DEVAppFx 和 AppFx 中将有更多的功能,因此能够将功能分开很重要。

0 投票
1 回答
701 浏览

multithreading - 如何从 ScalaFX 线程中获取值?

我有一个myNode: scalafx.scene.Node我想把它变成一个位图,以便我可以将它保存到磁盘,将它与其他位图进行比较等。我认为将它变成一个的正确代码scalafx.scene.image.WritableImage

然后我应该能够把它变成一个java.awt.image.RenderedImagewith

您可能已经意识到,问题是我必须运行代码才能进入wrImgScalaFX 线程。这里有一个问题解释了如何返回一个值,但我没有运气将它翻译成 Scala。我试过这个:

但代码只是挂起并且永远不会完成。谁能提供一个惯用的 Scala 版本和/或告诉我为什么代码永远不会返回?

0 投票
0 回答
382 浏览

scala - Sodium for Java 是否适合与 Scala+ScalaFX 一起使用?

看完这个演讲后,我决定尝试制作一个反应式风格的 Scala/ScalaFX 应用程序。自然,在这次演讲之后,我正在考虑使用 Sodium的 Java 实现来完成这项任务。但是,我不确定它与 Scala 的兼容性如何?

Sodium Java 会是构建反应式 ScalaFX 应用程序的好方法,还是我应该为这项任务寻找更合适的框架?

对于已经尝试过这种组合的人,这是一个更具体的问题:

将 Sodium Java 与 Scala/ScalaFX 结合时出现了哪些困难(如果有的话)?

0 投票
2 回答
2208 浏览

java - ScalaFX 除了为绑定添加语法糖外,还有什么好处?

我正在尝试使用 JavaFX 和 Scala 实现一个具有一些思维导图功能的简单笔记管理器。

我正在尝试决定是否应该直接从 Scala 或通过 ScalaFX 调用 JavaFX 代码?我不知道是否值得学习 ScalaFX,直接从 Scala 代码中调用 JavaFX 会不会更简单?

ScalaFX官方网站提到了 ScalaFX 的 4 个好处:

1) 自然语言绑定表达式

- 这很好,但我并没有真正计划使用那么多绑定(我打算将 EventBus 用于 gui 组件间事件和一些用于 gui 组件内事件的绑定)。

2) 定制动画语法

-我不打算在我的项目中使用动画。

3) 完整的类型安全 API

这似乎是一个无关紧要的点……类型安全是 Java 开发人员一直拥有的东西(并且通常认为是理所当然的),而其他脚本语言的开发人员则没有(并且在不知不觉中遭受运行时错误的影响)。但是,如果您正在开发的应用程序在部署后不会出现意外的运行时错误和错误,那么它是一项关键功能。

一个好的编译器将能够通过比较预期类型和实际类型来找出许多常见的编码错误,一个好的编译器(如 Scala)会自动为您推断类型,因此您不必在整个代码中繁琐地重复它们。

ScalaFX 通过类似脚本的 DSL 语法获得了两全其美的优势,您很少需要显式类型对象,Scala 编译器的强大类型安全性将推断和检查每个表达式和 API 调用的类型。这意味着在调试奇怪的代码错误和拼写错误上花费的时间更少,而且代码质量更高!

-这看起来很有趣!但我的问题是:我怀疑直接从 Scala 调用 JavaFX 给了我与通过 ScalaFX 调用 JavaFX 相同的类型安全保证,或者不是?我不知道。

4) 无缝 JavaFX/ScalaFX 互操作性:

- 如果我直接从 Scala 调用 JavaFX,那么与通过 ScalaFX 调用 JavaFX 相比,我不必担心互操作性问题。

总之:

似乎第 3 点是唯一可能给我一些我在简单项目中关心的好处的好处,但我只是不知道他们真正在谈论什么样的类型安全?

为什么在类型安全方面通过 ScalaFX 调用 JavaFX 比直接从 Scala 调用更好?如果我们使用 ScalaFX 而不是直接从 Scala 访问,我们可以获得什么样的额外类型安全优势?我问这个是因为我真的无法想象ScalaFX 可以提供什么样的额外类型安全?

所以,换句话说,我知道 ScalaFX 是一个很好的绑定语法糖,但它提供的还不止这些吗?如果我可以在没有它提供的(非常好的)合成糖的情况下生活,我真的应该使用它吗?

除了糖之外还有什么东西值得使用这个包装层(ScalaFX),它引入了额外的复杂性(和错误的来源)?

请注意,我非常感谢 ScalaFX 创作者的工作!我问这些问题只是为了能够做出更明智的决定。

0 投票
0 回答
809 浏览

javafx-2 - JavaFX KeyEvent.getText() 返回空?

根据 JavaDoc forKeyEventgetText()方法,它返回

描述按键代码的字符串,例如“HOME”、“F1”或“A”,用于按键按下和按键释放事件。对于键类型事件,文本始终是空字符串。

但是,当我尝试打印时getText(),它对可打印字符按预期工作,但不适用于其他键。"a""A"是按 a 和 Shift-A 键的结果,但按 Home、F1 或箭头键会产生"". 同样,当我按下 Shift-A 时,它会在 A 键之前记录 Shift 键的按下,但getText()for Shift 是"".

奇怪的是,按 Ctrl + some key 会产生一个不可打印的控制键。

这是一个错误,或者至少是文档与实际行为之间的不匹配?我正在使用 ScalaFX,所以我认为 Scala 接口可能存在问题,但我实际上使用的是javafx.scene.input.KeyEventandjavafx.event.EventHandler类,而不是它们的 Scala 包装器,所以我怀疑这是问题所在。

0 投票
1 回答
437 浏览

scala - 如何在 Scala FXML 控制器中设置线性图表?

我正在尝试构建一个显示线性图表的 ScalaFX 应用程序。

我已将折线图控制器成员定义为

我正在尝试添加数据

但我在这里得到 2 个错误:

第一个想法突出显示“系列”(在 中lineChart.data.set(series))并说“类型不匹配,预期:ObservableList[XYChart.Series[X, Y]],实际 XYChart.Series[Number, Number]”

第二 - 当我尝试构建时,我得到“未绑定的占位符参数 private val lineChart:XYChart = _”错误。

有什么建议么?^

0 投票
1 回答
2137 浏览

scala - 如何在 ScalaFx 中与 FXML 表单交互?

考虑到这个例子,我如何从主代码中获取或设置表单上的任何内容?

我们所拥有的只是一个简单的 Main 对象,例如

FXML 中定义的一种形式。

还有一个从未显式实例化的控制器类。

至于控制器是一个类(不是对象)并且我在主代码中没有指向其实例的链接,我如何访问表单上的任何内容?

我寻求达到的最终目标是让演员能够监听传入的消息并使用获得的数据更新表单。