Как добавить родителя MDI в tornadofx

Я пытаюсь создать форму MDI, но безуспешно, она всегда поверх старых окон, так как мы можем создать форму MDI в строке меню, что мне делать, чтобы заменить этот код, чтобы он отображался как форма MDI

TornadoFX Как создать MDI со списком дочерних окон модели?

center {
  tableview(instruments) {
    column("Name", Instrument::nameProperty)
    columnResizePolicy = SmartResize.POLICY
  }
}

Вот что у меня есть: MyForm

после того, как я нажму на пункт меню, появится новая форма, и я хочу, чтобы она находилась в строке меню, но я не могу этого сделать


person Thanh Le Dinh Hoai    schedule 08.06.2019    source источник


Ответы (1)


создать переменную для yourView

private val yourMainView: YourMainView by inject()
private val yourNewView: YourNewView by inject()
menuitem {
  setOnMouseClicked { 
    find<YourMainView>().replaceWith(YourNewView::class)
  }
}
center { 
   add(yourMainView.root)
}

это добавит вид и его элементы в ваш центр;)

person Mosch    schedule 12.06.2019
comment
надеюсь это то, что ты хочешь :)? - person Mosch; 14.06.2019
comment
извините, когда я поздно отвечу, большое спасибо, это довольно полезно для меня. но это не совсем то, что я хочу. Я хочу, чтобы он был таким же, как C # MDI, с вашей проблемой я не могу закрыть newView, он заменяет только oldview - person Thanh Le Dinh Hoai; 19.07.2019
comment
что вы имеете в виду под словом close, я не знаю, как это работает на C # - person Mosch; 27.08.2019
comment
вы хотите иметь его как собственное окно? - person Mosch; 27.08.2019
comment
Спасибо за вашу заботу, я сделал это с помощью DesktopPane, он все еще не работает идеально, но разрешает мои потребности - person Thanh Le Dinh Hoai; 29.08.2019