问题标签 [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 - JavaFX TreeView - 在 MouseEvent 上更改兄弟节点上的背景 CSS
我正在尝试在 JavaFX ListView 上实现 onMouseEnter 和 onMouseExit 事件。我想要做的是,如果鼠标移动到列表视图的一个节点上,我想更改当前视图中当前可见子节点的背景颜色。
这篇文章有一个很棒的代码示例,但并不是我想要的。 将样式应用于 javaFX 中的 TreeView 子节点
使用该代码作为参考,我正在寻找的是一个给定的树:
根 -> 项目:1 -> 项目:100 -> 项目 1000、项目 1001、项目 1002、项目 1003
当我将鼠标悬停在“项目:100”上时,我希望它和项目 1000* 具有背景颜色变化。
这对我来说似乎很困难,因为 getNextSibling 和 getPreviousSibling 接口位于 TreeItem 上,尽管您可以从 MouseEvent 上的 TreeCell 获取 TreeItem,但您不能(据我所知)更新 TreeItem 上的 CSS 并使其生效一个 TreeCell——因为 setStyle 方法在 TreeCell 上。
关于如何做到这一点的建议?
scala - 在 ScalaFX 中将 SubScene 添加到 BorderPane 的中心
我的 ScalaFX 8 应用程序的主要布局包括一个BorderPane
. 该top
属性包含一个菜单,而bottom
包含类似于状态栏的东西。我的目标是在 BorderPane 中显示一个用于查看 3D 对象的组件center
(充当SubScene
)。
我正在尝试使用仅包含黑色背景和简单球体的 SubScene 创建一个最小的工作示例,不多也不少。SubScene 应使用 BorderPane 中心可用的整个空间并相应地调整大小。不幸的是,我无法让它工作。
由于 SubScene 的大小是固定的,我认为有必要将 SubScene 嵌入另一个容器(能够自动调整大小)并将 SubScene 的尺寸绑定到它周围的容器的尺寸。
结果如下所示:
两个明显的问题:
- SubScene 保持其构造函数的固定大小。在外部 BorderPane 的中心既没有“最大化”,也没有在调整窗口大小时做任何事情
- 有红点,但 SubScene 的右下角不是黑色(?)
我的假设是我在理解 SubScene 的根元素到底是什么以及它的作用方面存在一些问题。我为 JavaFX 找到了另一个有类似问题的线程,该解决方案区分了 SubScene 的根元素(我不确定该元素来自何处)和窗格,但我无法将其应用于我的案例。任何帮助表示赞赏。谢谢。
scalafx - 在布局成为场景的一部分后,如何将组件添加到布局中?
在这种情况下,根布局具有内容...
当单击 TheButton 时,我试图让它在根布局中添加一个按钮...
scala - ScalaFX:查找 SubScene 总是返回 null
我有一个 ScalaFX 应用程序,其中包含一个带有 aScene
和SubScene
. 我想要实现的只是在另一个范围内获得对 SubScene 的引用(准确地说是一种方法),以便稍后更改 SubScene 的内容。我的最小工作示例(不起作用......)如下所示:
在这个简单的例子中,我添加了onClickByUser
当用户单击按钮时执行的方法(为简单起见,上面未显示按钮定义) - 但我总是得到null
而不是 SubScene。这是为什么?任何帮助表示赞赏,谢谢。
编辑:
好的,我忘记了井号('#'):
但现在我得到了这个:
线程“JavaFX 应用程序线程”中的异常 java.lang.ClassCastException:javafx.scene.SubScene 无法转换为 scalafx.scene.SubScene
如果我省略asInstanceOf[SubScene]
,那么它可以工作,但是返回的值当然具有类型Node
而不是SubScene
.
编辑2: 它的工作原理是这样的:
但这在我看来有点难看,必须使用 java 类并创建新的 scala 包装器对象,而不仅仅是获取对现有对象的引用......任何改进都值得赞赏。
javafx-8 - 自动更新 JavaFX/ScalaFX 客户端安装
是否有任何现成的安装程序、组件、api 或任何组合,可以让 JavaFX 应用程序或任何基于 JVM 的客户端自动、安全地检查自身的新版本,并获取、安装和重新启动新版本?
虽然不理想,但至少可以用sbt
吗?
scala - 将数据传递给 ScalaFX JFXApp
我在 ScalaFX 中编写了一个 GUI,在隔离测试时效果很好。需要提及的事情:
- “真正的”应用程序本身已经有一个 main 方法,只有那个应该用于启动应用程序,而不是我在扩展 JFXApp 时得到的那个。所以对 JFXApp 的 main 方法的调用是从外部手动完成的
- 应该可以将数据结构传递给JFXApp,所以我添加了一个setter
整个启动过程是这样的:
问题:
- 只要不调用JFX对象的main方法,我就无法绘制数据对象的内容,所以
setData
实际上只是一个简单的setter方法。想法是在被调用JFXGui
后尽快提取数据。JFXGui.main
但是:我怎么能在里面意识到这一点JFXGui
?有没有类似“onready”的方法? - 在上面的代码中,我尝试将setter的调用放在main方法的调用之后,这样setter就可以触发绘图了。我没有想到的是它
JFXGui.main
会永远阻塞,因此对 setter 的调用是无法访问的代码。
我该如何解决这个问题?任何帮助表示赞赏,谢谢。
编辑:
JFXGui
是我的 ScalaFX UI 的名称:
swing - 用于带有矢量图形的 GUI 的 Scala 库
如果我想用一些基本的可选矢量图形(箭头、彩色框、文本)创建一个“好旧”的桌面 GUI 程序,主要显示文本和一些图表(不需要 3D 或粒子等),然后可以编辑用户,我会使用哪个 Scala 库,为什么?我想为类似于绘图的东西构建一个工具。
大多数情况下,我不想使用 D3.js 或其他 web SVG 之类的东西,因为它速度非常慢,并且无法显示我想要的内容量。但是,如果为此目的使用 Scala.js 具有特殊的优势,那么如果没有更好的方法,它仍然会引起人们的兴趣。
或者,有人可以指出我在哪里讨论过这个问题?在谷歌或这里没有找到任何东西。
scala - ScalaFx 将 ImageView 绑定到自定义枚举
我刚开始编写 scalafx 应用程序并且有一个关于绑定的问题。
我的演示者类中有一个带有连接状态的枚举,我想在视图类的标签中选择适当的图标。我基本上可以用 javafx 方式创建绑定并设置转换器,每次状态更改时都会选择适当的 ImageView,但是可以用 ScalaFX 方式吗?
我看了很多scalafx示例,但仍然找不到这样的东西。
这是一些代码:
查看类:
提前致谢,如果有语法错误,我们深表歉意 - 英语不是我的母语。
scala - ScalaFX:HelloWorld 编译错误
我是 Scala 和 SBT 的新手,所以我可能会遗漏一些明显的东西。
我试图在http://www.scalafx.org/docs/quickstart/上编译 HelloWorld 示例
我创建了一个文件build.sbt
,其中包含:
和一个src/main/scala/ScalaFXHelloWorld.scala
包含链接页面代码的文件。
但是,运行时sbt run
我得到:
我在 Archlinux 上的 openjdk 1.8.0_31 上运行 sbt 0.13.7 和 scala 2.11.5
scala - scalafx.animation.Timeline 未按预期工作
几天前我已经开始试用 ScalaFX API。要了解此 API 的用法,我正在查看GitHub 上的示例。为了测试这个TimeLine
类的特性,我使用了这个例子:ScalaFXAnimation。
示例中定义 TimeLine 对象的代码如下所示:
如果我尝试在自己的项目中执行此操作,我会收到一些编译错误,例如:
值autoReverse
,keyFrames
和s
也找不到。我没有自己设置项目及其结构,而是从 GitHub 克隆了一个“Hello world”项目:scalafx-hello-world。该项目并正确编译。
会不会是 ScalaFX 中的错误?您对如何解决这个问题有任何想法吗?
EDIT2:完整代码