标签: tornadofx

在TornadoFX中设置PrimaryStage或Scene属性的方法

我是tornadoFX的新手,我不知道如何设置PrimaryStage或Scene属性,如场景高度或宽度或PrimaryStage模态.请帮我.

UPDATE

我想设置场景高度和宽度,看看这个例子:

dependencies {
compile 'no.tornado:tornadofx:1.5.2'
compile "org.jetbrains.kotlin:kotlin-stdlib:1.0.3"
}
Run Code Online (Sandbox Code Playgroud)


import javafx.scene.control.Label
import javafx.scene.layout.VBox
import tornadofx.App
import tornadofx.FX
import tornadofx.View

class Main : App() {
   override val primaryView = MyView::class

   init {
      // this two lines have error ( Val cannot be reassigned. )
      FX.primaryStage.scene.height = 600.0
      FX.primaryStage.scene.width = 800.0
      // or this line causes this exception ( java.lang.NoSuchMethodException )
      FX.primaryStage.isResizable = false
   }

}

class MyView : View() {
   override val root = VBox()

   init {
      root.children.add(Label("My label"))
   } …
Run Code Online (Sandbox Code Playgroud)

java javafx kotlin tornadofx

8
推荐指数
2
解决办法
3061
查看次数

Tornadofx - 如何在每个实例上将参数传递给Fragment

我是javafx,kotlin和明显tornadofx的新手.
问题:
如何在每个实例上将参数传递给Fragment?

假设我有一个表视图布局作为我的片段.现在,此片段在多个位置使用,但具有不同的数据集.

例如.添加片段:

class SomeView : View() {
... 
root += SomeViewFragment::class
}

class SomeAnotherView : View() {
... 
root += SomeViewFragment::class
}
Run Code Online (Sandbox Code Playgroud)

声明片段:

class SomeViewFragment : Fragment() {
...
    tableview(someDataSetFromRestApiCall) {
    ...
    }
}
Run Code Online (Sandbox Code Playgroud)

如何从SomeView和SomeAnotherView传递不同的someDataSetFromRestApiCall?

javafx kotlin tornadofx

7
推荐指数
1
解决办法
2922
查看次数

TornadoFX filechooser

我正在寻找javafx的解决方案FileChooser(在Kotlin).我坚持这个,我无法通过root View,因为Window!预计:

button("open some file") {

                    setOnAction {
                        val fileChooser = FileChooser();
                        val file = fileChooser.showOpenDialog(???)
                        ...
                    }

                }
Run Code Online (Sandbox Code Playgroud)

在这种情况下我应该通过什么?

javafx kotlin tornadofx

6
推荐指数
1
解决办法
2594
查看次数

JavaFx与TornadoFx

我已经开始工作了javafx.我想知道的区别javafxTornadofx.它们如何相互关联,彼此不同.

还在何时使用什么.

是否有任何javafx更有用/建议使用的情况,Tornadofx反之亦然?

javafx tornadofx

6
推荐指数
2
解决办法
3040
查看次数

JavaFX / TornadoFX导致MacOS 10.15(Catalina)上的按键接收提示

问题描述

我有JavaFX和TornadoFX的问题。当我在MacOS 10.15(Catalina)上启动我的应用程序时,出现以下错误消息:

按键接收

“您的应用程序”希望从任何应用程序接收击键。

在“系统偏好设置”中的“安全性和隐私”偏好设置中授予对此应用程序的访问权限。

我创建的任何JavaFX和TornadoFX应用程序都会看到此错误消息。无论多么简单。

有什么办法可以使此消息消失?显示此提示时,我不想发布该软件。

环境

  • TornadoFX 1.7.18
  • Java 8 / JavaFX8
  • Catalina Beta 9(19A573a)

我还尝试了其他版本,例如JavaFX13和TornadoFX 2.0.0-SNAPSHOT,但是看到了相同的提示。

可能与此有关:

编辑

Orcale JIRA中的错误报告:https ://bugs.openjdk.java.net/browse/JDK-8231513

java javafx tornadofx macos-catalina

6
推荐指数
1
解决办法
308
查看次数

TornadoFx Undecorated 窗口从任务栏恢复时全屏显示

我一直在尝试 Tornadofx。尝试创建自定义标题栏,这是我目前正在尝试的代码

fun main(args: Array<String>) {
    launch<MyApp>(args)
}

class MyApp : App(Title::class) {
    override fun start(stage: Stage) {
        stage.initStyle(StageStyle.UNDECORATED)
        stage.minWidth = 600.0
        stage.minHeight = 450.0
        stage.isMaximized = false
        super.start(stage)
    }
}

class Title : View() {
    private var xOffset = 0.0
    private var yOffset = 0.0
    private var screenBounds: Rectangle2D = Screen.getPrimary().visualBounds
    private var originalBounds: Rectangle2D = Rectangle2D.EMPTY
    
    init {
        primaryStage.isMaximized = false
    }
    
    override val root = borderpane {
        onMousePressed = EventHandler { ev ->
            xOffset = primaryStage.x - …
Run Code Online (Sandbox Code Playgroud)

javafx kotlin tornadofx

6
推荐指数
1
解决办法
175
查看次数

TornadoFX 未解决的 JavaFx

我想创建一个应该是桌面应用程序的新项目。为此,我选择了 Kotlin 语言和 TornadoFX 框架。我已经安装了TornadoFX插件并创建了一个新的 T tornadofx-gradle-project。Intellij 进行的基本设置成功,但我遇到了问题。当我想运行生成的项目时,它失败了。该项目无法解析 java fx。我已经通过网络挖掘并没有发现可以解决问题的任何内容。我在构建失败后收到的错误日志是:

错误日志

有没有人面临同样的问题?我怎样才能摆脱它?

我已经安装了 JDK 11 并将其设置为构建配置,但我仍然收到问题:

java.lang.UnsupportedClassVersionError: org/openjfx/gradle/JavaFXPlugin has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

是否有更改,我在中间错过了什么?

javafx intellij-idea kotlin tornadofx javafx-11

5
推荐指数
1
解决办法
4464
查看次数

使用fixedRateTimer时,Kotin应用程序不会停止(即使窗口关闭)

我在 Kotlin 中有一个简单的应用程序,它绘制一个矩形,然后使用fixedRateTimer 每秒更新矩形的位置 30 次。我遇到的问题是,当我关闭显示矩形的窗口时,应用程序继续运行,我必须按 Intellij 内的红色方块才能真正停止它。

我曾尝试在关闭窗口之前取消fixedRateTimer,但应用程序仍在运行,它似乎没有执行任何操作。如果我在没有fixedRateTimer的情况下运行应用程序,它只会显示方块,然后当我关闭窗口时,它会停止应用程序。

import javafx.scene.paint.Color
import tornadofx.*
import kotlin.concurrent.fixedRateTimer

class MyApp: App(MyView::class)

class MyView : View() {

    override val root = stackpane {
        group {
            rectangle {
                fill = Color.LIGHTGRAY
                width = 600.0
                height = 480.0
            }

            val myRect = rectangle {
                fill = Color.BLUEVIOLET
                width = 30.0
                height = 30.0
                x = 100.0
                y = 100.0
            }

            fixedRateTimer("default", false, 0L, 1000/30) {
                myRect.x += 1
                if(myRect.x > 200) this.cancel()
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

kotlin tornadofx

5
推荐指数
1
解决办法
3773
查看次数

如何使用类型安全的 css 加载自定义字体?

我想使用 typesafe css 在 tornadofx 应用程序中加载自定义字体,这可能吗?谢谢和最好的问候。

css tornadofx

4
推荐指数
1
解决办法
932
查看次数

如何使用TornadoFX树视图显示数据

我正在学习如何使用kotlin,并已开始使用tornadoFX。我正在尝试阅读指南,但是我无法弄清楚“具有不同类型的TreeView”的含义。似乎我应该使用星形投影,当您在通话中使用*时,我就知道。

但是,一旦我这样做,树视图就会说“不允许在函数和属性的类型参数上进行投影”

这是我的代码:

MainView类:View(“”){

override val root = treeview<*> {
        root = TreeItem(Person("Departments", ""))

        cellFormat {
            text = when (it) {
                is String -> it
                is Department -> it.name
                is Person -> it.name
                else -> throw IllegalArgumentException("Invalid Data Type")
            }
        }

        populate { parent ->
            val value = parent.value
            if (parent == root) departments
            else if (value is Department) persons.filter { it.department == value.name }
            else null
        } }

}
Run Code Online (Sandbox Code Playgroud)

老实说,我很沮丧,我不知道我要做什么。

另外,如果任何人都可以为我提供一些学习Kotlin和tornadoFX的有用链接,将不胜感激:)

treeview kotlin tornadofx

4
推荐指数
1
解决办法
568
查看次数