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

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 上。

关于如何做到这一点的建议?

0 投票
1 回答
1005 浏览

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 的根元素(我不确定该元素来自何处)和窗格,但我无法将其应用于我的案例。任何帮助表示赞赏。谢谢。

0 投票
1 回答
216 浏览

scalafx - 在布局成为场景的一部分后,如何将组件添加到布局中?

在这种情况下,根布局具有内容...

当单击 TheButton 时,我试图让它在根布局中添加一个按钮...

0 投票
1 回答
273 浏览

scala - ScalaFX:查找 SubScene 总是返回 null

我有一个 ScalaFX 应用程序,其中包含一个带有 aSceneSubScene. 我想要实现的只是在另一个范围内获得对 SubScene 的引用(准确地说是一种方法),以便稍后更改 SubScene 的内容。我的最小工作示例(不起作用......)如下所示:

在这个简单的例子中,我添加了onClickByUser当用户单击按钮时执行的方法(为简单起见,上面未显示按钮定义) - 但我总是得到null而不是 SubScene。这是为什么?任何帮助表示赞赏,谢谢。

编辑:

好的,我忘记了井号('#'):

但现在我得到了这个:

线程“JavaFX 应用程序线程”中的异常 java.lang.ClassCastException:javafx.scene.SubScene 无法转换为 scalafx.scene.SubScene

如果我省略asInstanceOf[SubScene],那么它可以工作,但是返回的值当然具有类型Node而不是SubScene.

编辑2: 它的工作原理是这样的:

但这在我看来有点难看,必须使用 java 类并创建新的 scala 包装器对象,而不仅仅是获取对现有对象的引用......任何改进都值得赞赏。

0 投票
3 回答
168 浏览

javafx-8 - 自动更新 JavaFX/ScalaFX 客户端安装

是否有任何现成的安装程序、组件、api 或任何组合,可以让 JavaFX 应用程序或任何基于 JVM 的客户端自动、安全地检查自身的新版本,并获取、安装和重新启动新版本?

虽然不理想,但至少可以用sbt吗?

0 投票
1 回答
441 浏览

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 的名称:

0 投票
1 回答
1361 浏览

swing - 用于带有矢量图形的 GUI 的 Scala 库

如果我想用一些基本的可选矢量图形(箭头、彩色框、文本)创建一个“好旧”的桌面 GUI 程序,主要显示文本和一些图表(不需要 3D 或粒子等),然后可以编辑用户,我会使用哪个 Scala 库,为什么?我想为类似于绘图的东西构建一个工具。

大多数情况下,我不想使用 D3.js 或其他 web SVG 之类的东西,因为它速度非常慢,并且无法显示我想要的内容量。但是,如果为此目的使用 Scala.js 具有特殊的优势,那么如果没有更好的方法,它仍然会引起人们的兴趣。

或者,有人可以指出我在哪里讨论过这个问题?在谷歌或这里没有找到任何东西。

0 投票
1 回答
828 浏览

scala - ScalaFx 将 ImageView 绑定到自定义枚举

我刚开始编写 scalafx 应用程序并且有一个关于绑定的问题。

我的演示者类中有一个带有连接状态的枚举,我想在视图类的标签中选择适当的图标。我基本上可以用 javafx 方式创建绑定并设置转换器,每次状态更改时都会选择适当的 ImageView,但是可以用 ScalaFX 方式吗?

我看了很多scalafx示例,但仍然找不到这样的东西。

这是一些代码:

查看类:

提前致谢,如果有语法错误,我们深表歉意 - 英语不是我的母语。

0 投票
1 回答
1507 浏览

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

0 投票
1 回答
788 浏览

scala - scalafx.animation.Timeline 未按预期工作

几天前我已经开始试用 ScalaFX API。要了解此 API 的用法,我正在查看GitHub 上的示例。为了测试这个TimeLine类的特性,我使用了这个例子:ScalaFXAnimation

示例中定义 TimeLine 对象的代码如下所示:

如果我尝试在自己的项目中执行此操作,我会收到一些编译错误,例如:

autoReverse,keyFramess也找不到。我没有自己设置项目及其结构,而是从 GitHub 克隆了一个“Hello world”项目:scalafx-hello-world。该项目并正确编译。

会不会是 ScalaFX 中的错误?您对如何解决这个问题有任何想法吗?

EDIT2:完整代码