问题标签 [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.
javafx - Get text values from HBox
Say I have an HBox like this:
Now I'd like to get TextArea
s' text values in a collection. How can I get to these TextArea
s? 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
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 来获得它。我希望我愚蠢地错过了一些简单的东西。这就是写入控制台的所有内容:
animation - 布局更改时的scalafx动画
我正在尝试为 ScalaFX 应用程序中的布局更改设置动画,类似于这个问题。场景包括一个主窗格。每次单击它时,都会在其中添加另一个窗格(“儿子”)(实际上是在其中的 FlowPane 内)。窗格添加应该“推高”以前的儿子,如果需要,“挤压”以前的儿子(直到他们的最小高度)。
有两个问题:
- 动画不流畅。有时,当添加儿子或调整窗口大小时,会出现闪烁(“故障”),其中节点的位置和/或比例会暂时不正确。我尝试按照引用的答案中的建议设置初始值,但似乎没有解决它。
- 通过拖动底部边缘调整窗口大小时,移动动画从当前位置正确开始。但是,当拖动顶部边缘时,有一个跳跃是初始位置。
代码如下:
java - JavaFX - 获取非 ASCII 字符的 KeyEvent
在 JavaFX(实际上是 ScalaFX)应用程序中,我想允许用户通过一系列键盘键调用命令。无论当前的键盘布局(语言)如何,这些命令都应该可以工作。例如,用户可能正在输入泰语(ภาษา),然后想要通过按“Escape”而不是“S”(或“:”然后按“w”,vim 样式)来保存。
我发现 KeyEvents 为非英语(非 ASCII?)字符提供了未定义的键码。
这段代码:
给出:
按 A 时,将语言更改为希伯来语并再次按下。
我该如何克服这个问题?无论语言如何,我如何知道按下了哪个键?
类似的未回答问题:JavaFX KeyEvent 和重音字符
scala - 如何从 Scala 启动 ScalaFX 应用程序?
我正在尝试使用以下代码从http://www.scalafx.org启动 ScalaFX Hello World 应用程序:
为了澄清,我在car.cadr
包中有两个 Scala 文件:ApplicationStarter.scala
和HelloStageDemo.scala
.
HelloStageDemo.scala
启动并运行得很好,但编译器抱怨not found: type HelloStageDemo
on ApplicationStarter.scala
. 即使我用import car.cadr.HelloStageDemo
编译器手动导入它仍然会抱怨。
我正在使用 Scala 2.11.1 和 ScalaFx 8.0.20-R6。
javafx - 覆盖元素鼠标监听器 ScalaFx/JavaFx 执行
我的 ScalaFX 应用程序中有以下问题。我在 VBox 中有一个标签。两者都分配了一个 onMouseClicked 侦听器,如我的示例代码所示。单击内部标签时,将执行两个处理程序。这不是我想要强制的行为。我只希望执行标签侦听器。
示例代码
单击标签时是否有一种简单的方法可以阻止执行 VBox 处理程序?
scalafx - 使 ScalaFX 场景可拖动
我实际上正在开发一个没有窗口装饰的 ScalaFX 应用程序。我想做的是让它可拖动,以便用户可以随意移动它。
我只需将拖动鼠标的坐标写入舞台 X/Y 坐标即可移动舞台。然而,这导致了一个滞后和闪烁的窗口。
ScalaFX中如何顺利实现拖拽舞台?
scalafx - ScalaFX 窗口始终位于其他窗口之上
我目前正在实现一个 ScalaFX 应用程序,当特定事件发生时,它需要位于所有其他(非相关应用程序、任意操作系统窗口)窗口之上。我在互联网上搜索并找到了一些答案,这些答案是对所需行为的一种破解。然而,这些都没有奏效。到目前为止我测试过:
- setFocused 例程
- 设置模态
- 使用 JSwing 对话框(导致非反应窗口)
似乎通过引入属性 alwaysOnTop 在 Java 8u20 中进行了修复,但是我无法在目标计算机上安装 8u20,而必须使用 Java 7。
是否有适当的解决方法可以在所有窗口之上设置一个窗口(并非总是如此,但在特定事件中)?
javafx - 是否可以在 JavaFX TableView 中否决用户行选择?
用户可以在不同的 TableView 行上单击鼠标或使用向上/向下箭头键转到不同的行。但是,当前行可能是“无效的”,我想有效地阻止行更改的发生。我正在某处寻找“验证”或“否决”方法。我知道解决方法可能是观察行更改并立即将所选行放回原来的位置 - 在无效行。可能这种解决方法是唯一的答案。如果是这样,最好的方法是什么?
顺便说一句,TableView 本身不用于任何编辑 - 它是一个仅查看控件。
scala - Scala、GUI 和不变性
我创建了一个计算某些事物的算法。这可以被认为是模型。该算法以全功能方式实现,因此它仅使用不可变类。现在使用这个模型,我想在它上面开发一个 GUI 层。但是,我对在 Scala 中构建 GUI 的最佳实践一无所知。我打算使用 ScalaFX。
我的问题如下:在 ScalaFX(类似于 JavaFX)中,您可以将 GUI 中的值绑定到对象属性。这显然违反了函数范式,但看起来很方便。这将需要重写我的类以使用可绑定的属性,这感觉就像摇尾巴一样——模型将取决于 GUI。
另一方面,我可以有一个独立的 GUI 层。在这种情况下,我需要绑定代理对象,并且必须基于这些代理对象创建模型对象。这会感觉更惯用,但意味着大量的代码重复和额外的工作。我的模型和代理对象必须保持同步,并且我必须负责复制属性。
这样做的好方法是什么?GUI 总是充满了可变性,所以函数式编程在这里并不合适。尽管如此,我还是喜欢 Scala,所以我也想继续将它用于 GUI。