2017-10-27 2 views
1

최대화 된 모달을 열어야합니다. 은 내가tornadofx에서 최대화 된 모달을 만드는 방법은 무엇입니까?

class BookingDetailView : Fragment("Booking Details") { 
    override val root: BorderPane by fxml() 
    init { 
     modalStage?.isMaximized = true 
    } 
} 

편집을 시도 :

class FindRoomView : View("Find Room") { 
override val root: BorderPane by fxml() 
private val dpArrivalDate: JFXDatePicker by fxid() 
private val tparrivalTime: JFXTimePicker by fxid() 
private val dpDepartureDate: JFXDatePicker by fxid() 
private val dpDepartureTime: JFXTimePicker by fxid() 
private val btnFindRoom: JFXButton by fxid() 
private val cbAdult: JFXComboBox<*> by fxid() 
private val cbChildren: JFXComboBox<*> by fxid() 
private val btnClear: JFXButton by fxid() 
private val btnAdvanceBooking: JFXButton by fxid() 
private val btnBookNow: JFXButton by fxid() 
val count = FXCollections.observableArrayList<Int>() 
// val selections = FXCollections.observableArrayList<AdvanceBookingRoomModel>() 
val availability = listOf(RoomType("AC"), RoomType("Non-AC")).observable() 

init { 
    // model.item = this 
    // model.count.value +=1..50 
    // (1..50).forEach { i -> model.count.value.add(i) } 
    // dpArrivalDate.bind(model.arrivalDateProperty) 
    cbChildren.items = count 
    cbAdult.items = count 
    // btnBookNow.setOnAction { bookNow() } 
    btnBookNow.action { bookNow() } 

} 

private fun bookNow() { 
    // openInternalWindow(BookingDetailView::class,owner = root) 
    find(BookingDetailView::class).openWindow() 
} 
} 

이 작업을 does'not : 이

class BookingDetailView : Fragment("Booking Details") { 
override val root: BorderPane by fxml() 
override fun onDock() { 
//modalStage is null here. when i tried to debug . 
    **modalStage?.isMaximized = true** 

} 

}이보기에서 호출

()가 onDock을 무시하려고 노력했다. 저는 또한 모달에 최소화하고 최대화 버튼을 갖고 싶습니다. 어떻게 그럴 수 있습니까? Output of Edvin's code

답변

1

조각이 초기화 될 때 modalStage은 아직 생성되지 않으므로 modalStage은이 시점에서 항상 null입니다. 대신 onDock을 덮어 쓰고 isMaximized = true을 설정하십시오.

openWindowstageStyle 매개 변수를 전달하여 생성 된 창의 사용 가능한 아이콘을 제어 할 수 있습니다. 나는() onDock을 무시하려고 노력

class ModalApp : App(FindRoomView::class) 

class FindRoomView : View("Find Room") { 
    override val root = stackpane { 
     button("Book now").action { 
      find(BookingDetailView::class).openWindow() 
     } 
    } 
} 

class BookingDetailView : Fragment("Booking Details") { 
    override val root = borderpane() 

    override fun onDock() { 
     modalStage?.isMaximized = true 
     println(modalStage) 
    } 
} 
+0

: 여기 onDockmodalStage에 액세스하는 방법을 보여줍니다 완벽한 응용 프로그램입니다. 이 중 하나가 작동하지 않습니다. – Adi

+0

문제를 보여주는 최소한의 완벽한 샘플을 게시 할 수 있습니까? –

+0

modalStage는 여전히 onDock() {}에서 null입니다. 왜? – Adi

관련 문제