私は顧客、予約、請求書などの単純なエンティティを管理するjavafxアプリケーションを作成しています。私は私のメインGUIで、次のFXMLを定義し、GUIの場合:コントローラの既存のインスタンスを取得
<TabPane fx:id="mainTabPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="430.0" prefWidth="698.0" tabClosingPolicy="UNAVAILABLE" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gui.MainController">
<tabs>
<Tab id="BoxTab" fx:id="boxManagementTab" text="Box Management">
<content>
<fx:include source="boxTab.fxml"/>
</content>
</Tab>
<Tab text="Booking">
<content>
<fx:include source="bookingTab.fxml"/>
</content>
</Tab>
<Tab text="Bill" >
<content>
<fx:include source="billTab.fxml"/>
</content>
</Tab>
</tabs>
</TabPane>
これらのタブでの基本的なデータを示してちょうどTableviewsがあります。すべてのタブはそれ自身のコントローラを持っています。私が直面している問題は、例えば私が新しい請求書に現れたときに予約を削除したいということです。これは、新しいデータをTableviewに設定する必要があることを意味します。
私は、FXMLLoaderとload()メソッドを使用して、billコントローラのBooking of BookingのTableViewにアクセスしたかったのです。しかし、私が知る限り、load()を使うたびにコントローラの新しいインスタンスが作成されます。 コントローラの既存のインスタンスにアクセスする方法はありますか? このタブのコントローラーをロードすることでこれを実行したかったのです。
はhttp://stackoverflow.com/documentation/javafx/1580/fxml-and-controllers#t=201703201252299188006を参照してください。 –