问题标签 [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 回答
944 浏览

javafx - Get text values from HBox

Say I have an HBox like this:

Now I'd like to get TextAreas' text values in a collection. How can I get to these TextAreas? texts.content is an ObservableList[javafx.scene.Node], not ObservableList[TextArea].

I've tried type casting like this:

And gott the following exception: java.lang.ClassCastException: javafx.scene.control.TextArea cannot be cast to scalafx.scene.control.TextArea

0 投票
1 回答
134 浏览

java - ClassNotFoundException: HelloStageDemo

我正在运行的代码来自http://www.scalafx.org的主页。没有编译器警告,但是当它运行时出现异常。我首先尝试将 jdk 1.7 与 Scala 2.11 和 ScalaFX 2.9.3-2.2.67 一起使用,并得到了等效的错误。我仍然使用 jdk 1.8 和 Scala 2.11 和 ScalaFX 2.11-8.0.20-R6 来获得它。我希望我愚蠢地错过了一些简单的东西。这就是写入控制台的所有内容:

0 投票
0 回答
424 浏览

animation - 布局更改时的scalafx动画

我正在尝试为 ScalaFX 应用程序中的布局更改设置动画,类似于这个问题。场景包括一个主窗格。每次单击它时,都会在其中添加另一个窗格(“儿子”)(实际上是在其中的 FlowPane 内)。窗格添加应该“推高”以前的儿子,如果需要,“挤压”以前的儿子(直到他们的最小高度)。

有两个问题:

  1. 动画不流畅。有时,当添加儿子或调整窗口大小时,会出现闪烁(“故障”),其中节点的位置和/或比例会暂时不正确。我尝试按照引用的答案中的建议设置初始值,但似乎没有解决它。
  2. 通过拖动底部边缘调整窗口大小时,移动动画从当前位置正确开始。但是,当拖动顶部边缘时,有一个跳跃是初始位置。

代码如下:

0 投票
1 回答
1384 浏览

java - JavaFX - 获取非 ASCII 字符的 KeyEvent

在 JavaFX(实际上是 ScalaFX)应用程序中,我想允许用户通过一系列键盘键调用命令。无论当前的键盘布局(语言)如何,这些命令都应该可以工作。例如,用户可能正在输入泰语(ภาษา),然后想要通过按“Escape”而不是“S”(或“:”然后按“w”,vim 样式)来保存。

我发现 KeyEvents 为非英语(非 ASCII?)字符提供了未定义的键码。

这段代码:

给出:

按 A 时,将语言更改为希伯来语并再次按下。

我该如何克服这个问题?无论语言如何,我如何知道按下了哪个键?

类似的未回答问题:JavaFX KeyEvent 和重音字符

0 投票
3 回答
2181 浏览

scala - 如何从 Scala 启动 ScalaFX 应用程序?

我正在尝试使用以下代码从http://www.scalafx.org启动 ScalaFX Hello World 应用程序:

为了澄清,我在car.cadr包中有两个 Scala 文件:ApplicationStarter.scalaHelloStageDemo.scala. HelloStageDemo.scala启动并运行得很好,但编译器抱怨not found: type HelloStageDemoon ApplicationStarter.scala. 即使我用import car.cadr.HelloStageDemo编译器手动导入它仍然会抱怨。

我正在使用 Scala 2.11.1 和 ScalaFx 8.0.20-R6。

0 投票
1 回答
492 浏览

javafx - 覆盖元素鼠标监听器 ScalaFx/JavaFx 执行

我的 ScalaFX 应用程序中有以下问题。我在 VBox 中有一个标签。两者都分配了一个 onMouseClicked 侦听器,如我的示例代码所示。单击内部标签时,将执行两个处理程序。这不是我想要强制的行为。我只希望执行标签侦听器。

示例代码

单击标签时是否有一种简单的方法可以阻止执行 VBox 处理程序?

0 投票
2 回答
632 浏览

scalafx - 使 ScalaFX 场景可拖动

我实际上正在开发一个没有窗口装饰的 ScalaFX 应用程序。我想做的是让它可拖动,以便用户可以随意移动它。

我只需将拖动鼠标的坐标写入舞台 X/Y 坐标即可移动舞台。然而,这导致了一个滞后和闪烁的窗口。

ScalaFX中如何顺利实现拖拽舞台?

0 投票
0 回答
100 浏览

scalafx - ScalaFX 窗口始终位于其他窗口之上

我目前正在实现一个 ScalaFX 应用程序,当特定事件发生时,它需要位于所有其他(非相关应用程序、任意操作系统窗口)窗口之上。我在互联网上搜索并找到了一些答案,这些答案是对所需行为的一种破解。然而,这些都没有奏效。到目前为止我测试过:

  • setFocused 例程
  • 设置模态
  • 使用 JSwing 对话框(导致非反应窗口)

似乎通过引入属性 alwaysOnTop 在 Java 8u20 中进行了修复,但是我无法在目标计算机上安装 8u20,而必须使用 Java 7。

是否有适当的解决方法可以在所有窗口之上设置一个窗口(并非总是如此,但在特定事件中)?

0 投票
0 回答
155 浏览

javafx - 是否可以在 JavaFX TableView 中否决用户行选择?

用户可以在不同的 TableView 行上单击鼠标或使用向上/向下箭头键转到不同的行。但是,当前行可能是“无效的”,我想有效地阻止行更改的发生。我正在某处寻找“验证”或“否决”方法。我知道解决方法可能是观察行更改并立即将所选行放回原来的位置 - 在无效行。可能这种解决方法是唯一的答案。如果是这样,最好的方法是什么?

顺便说一句,TableView 本身不用于任何编辑 - 它是一个仅查看控件。

0 投票
1 回答
710 浏览

scala - Scala、GUI 和不变性

我创建了一个计算某些事物的算法。这可以被认为是模型。该算法以全功能方式实现,因此它仅使用不可变类。现在使用这个模型,我想在它上面开发一个 GUI 层。但是,我对在 Scala 中构建 GUI 的最佳实践一无所知。我打算使用 ScalaFX。

我的问题如下:在 ScalaFX(类似于 JavaFX)中,您可以将 GUI 中的值绑定到对象属性。这显然违反了函数范式,但看起来很方便。这将需要重写我的类以使用可绑定的属性,这感觉就像摇尾巴一样——模型将取决于 GUI。

另一方面,我可以有一个独立的 GUI 层。在这种情况下,我需要绑定代理对象,并且必须基于这些代理对象创建模型对象。这会感觉更惯用,但意味着大量的代码重复和额外的工作。我的模型和代理对象必须保持同步,并且我必须负责复制属性。

这样做的好方法是什么?GUI 总是充满了可变性,所以函数式编程在这里并不合适。尽管如此,我还是喜欢 Scala,所以我也想继续将它用于 GUI。