Tag: tornadofx

为什么我的场景是空的?

我正在尝试使用Javafx(使用TornadoFX库)做一些3D工作,并且无法将SceneCamera设置为Scene因为Scene正在返回null 。 我启动我的程序是这样的: class ThreeDTest : App(HomeView::class, ThreeDStyles::class) { override fun start(stage: Stage) { super.start(stage) stage.show() stage.scene.fill = Color.BLACK val primaryScreenBounds = Screen.getPrimary().visualBounds stage.maxWidth = 1920.0 stage.maxHeight = 1080.0 stage.minWidth = 1920.0 stage.minHeight = 1080.0 } } 然后在HomeView类中我有这个: class HomeView : View() { override val root = stackpane { val axisGroup = Xform() val world […]

与TornadoFX一起使用第三方UI库

我想用TornadoFX使用JFoenix库(或其他UI库)。 有没有教程如何在TornadoFX中使用第三方组件与类型保存构建器? 谢谢你的帮助。

如何在TornadoFx中注入ItemViewModel

我正在尝试添加模型以通过注入查看 val model = PersonModel by inject() 但错误: “PersonModel”没有伴随对象。 我究竟做错了什么 ?

TornadoFX如何在编辑TableView时添加验证

考虑下面的例子: class Item(name: String, number: Int) { val nameProperty = SimpleStringProperty(name) var name by nameProperty val numberProperty by lazy { SimpleIntegerProperty(number) } var number by numberProperty } class MainView : View("Example") { val items = listOf(Item("One", 1), Item("Two", 2)).observable() override val root = vbox { tableview(items) { column("Name", Item::nameProperty).makeEditable() column("Number", Item::numberProperty).makeEditable(NumberStringConverter()) enableCellEditing() } } } […]

如何在动态列表视图上安装点击处理程序(在tornadofx中)

我的应用程序需要允许添加到列表视图。 我想通过使用observableArrayList动态添加到列表视图。 如果我点击按钮,项目被添加到列表并显示。 现在我正在努力添加一个点击处理程序(我想处理当有人点击列表视图中的任何项目时发生的事件)。 我在哪里做这个? 这是我的代码。 package someapp import javafx.collections.FXCollections import javafx.geometry.Pos import javafx.scene.layout.VBox import javafx.scene.text.FontWeight import tornadofx.* class MyApp : App(HelloWorld::class) { } class HelloWorld : View() { val leftSide: LeftSide by inject() override val root = borderpane { left = leftSide.root } } class LeftSide: View() { var requestView: RequestView by singleAssign() override […]

如何用列填充可用的tableview宽度?

当创建tableview时,列的默认行为是留下大量的空白空间。 有没有办法自动填充空间? 一个解决方案在这里描述: JavaFX 2自动列宽,但这似乎有点麻烦。

尝试运行TornadoFX应用程序时发生java.lang.NoSuchMethodException

不知道是什么导致它没有找到我的视图上的“初始化”功能,所以我想我会在这里发布,看看是否有其他人有这个问题。 一切都编译好! 然后当我运行我的程序时,我得到这个错误: java.lang.InstantiationException: com.my.tfx.app.InputView at java.lang.Class.newInstance(Class.java:427) at tornadofx.FXKt.find(FX.kt:372) at tornadofx.FXKt.find$default(FX.kt:358) at tornadofx.App.start(App.kt:80) at com.my.tfx.app.UserInputUI.start(UserInputUI.kt:15) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$8(LauncherImpl.java:863) at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$7(PlatformImpl.java:326) at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) at com.sun.glass.ui.gtk.GtkApplication.lambda$null$5(GtkApplication.java:139) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.NoSuchMethodException: com.my.tfx.app.InputView.<init>() at java.lang.Class.getConstructor0(Class.java:3082) at java.lang.Class.newInstance(Class.java:412) … 13 more 不太清楚是什么导致这个..我有这样的设置: class UserInputUI : App(InputView(SVGEnum.first, StringEnum.first, UserInput.validationFunctions)::class, UIStyles::class) { […]

TornadoFX ItemViewModel更新如果支持对象,不公开JavaFX属性更改

我有一个下面的代码 class MainView : View("Example") { val model: UserModel = UserModel() init { model.item = User(status = true) } override val root = vbox { useMaxWidth = true label(model.status) button("Get new status") { action { model.item.updateStatus() println("Status in model: ${model.status.value}") println("Status in backing object: ${model.item.status}") } } } } class User(var status: Boolean, val api: […]

TornadoFX如何将Node样式(或styleClass)绑定到属性?

考虑下面的例子: class MainView : View("Example") { val someBooleanProperty: SimpleBooleanProperty = SimpleBooleanProperty(true) override val root = borderpane { paddingAll = 20.0 center = button("Change bg color") { action { // let's assume that new someBooleanProperty value is updated // from some API after button clicked // so changing style of the borderpane in action block // […]

TornadoFX将域类包装到ItemViewModel

我有一个域类 class UserItem(var simpleItem: Item, var id: String, var status: String, var price: Int) { var upperLimit: Int = 0 var lowerLimit: Int = 0 /* methods here */ } 和一个存储这些对象的类 class Trades { val saleableItems: ArrayList<UserItem> = ArrayList() val soldAwaitingItems: ArrayList<UserItem> = ArrayList() /* methods */ } saleableItems和soldAwaitingItems从Trades内更新 我想使用TableView显示saleableItems这样我就可以绑定数据和视图,而无需将属性转换为TornadoFX属性,因此我将UserItem包装到ItemViewModel class UserItemModel(uItem: UserItem) : ItemViewModel<UserItem>() […]