私はシーンビルダを使用してGUIを構築しています。私のシーンの大部分には共通の要素が1つあります(iOSタイプのホームボタンが下部にあります)。 このコンポーネントを別のfxmlファイルで定義することが可能かどうかは疑問でした。私が行った研究から、再利用可能なコンポーネントを宣言するための同じプロセスが存在しますが、同じfxmlファイル内にのみ存在します。 この原則をいくつかのfxmlファイルにどのように適用できますか?JavaFX - 再利用可能なFXMLコンポーネント
4
A
答えて
0
これは間違いなく別のFXMLファイルを作成して、それに既知の固有のIDを持つノードを追加して、そのノードをIDでアクセスすることで実現できます。難しい部分はどのようにアプリケーション全体をやっていますか?おそらく多くのコントローラで同じ機能を作成していますが、ここでFXMLファイルからボタンを取得する方法があります。
すべてのボタンは同じ動作をしていますか?
Parent root = FXMLLoader.load(getClass().getResource("fileName.fxml"));
ObservableList<Node> nodes = root.getChildrenUnmodifiable();
String _id = "testButton";
for (Node node : nodes) {
if (node.getId().equals(_id)) {
return node;
}
}
return null;
}
2
あなたはこのように行うことができます。
<AnchorPane xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.example.MainController">
<children>
<fx:include fx:id="someId" source="NestedFXML.fxml"/>
</children>
<AnchorPane xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.example.NestedFXMLController">
</AnchorPane>
コントローラクラス:
public class MainController implements Initializable {
@FXML
private NestedFXMLController someIdController;
@Override
public void initialize(URL location, ResourceBundle resources) {
// TODO Auto-generated method stub
}
}
public class NestedFXMLController implements Initializable {
@Override
public void initialize(URL location, ResourceBundle resources) {
// TODO Auto-generated method stub
}
}
ニース:ネストされたコントローラは、FXML注釈を介して注入することができます。 フィールド名は、fx:id属性文字列+ "Controller"と一致する必要があります。
関連する問題
- 1. JavaFX 8:FXMLの再利用
- 2. 再利用可能なコンポーネント
- 3. 再利用可能なコンポーネント
- 4. Silexの再利用可能なコンポーネント
- 5. SpringMVCで再利用可能なコンポーネント
- 6. 部分再利用可能なVueコンポーネント
- 7. リストビュー再利用可能なコンポーネント - アーキテクチャ - アンドロイド
- 8. Java再利用generic FXML
- 9. 再利用可能な検索関数javafx
- 10. 再利用可能なコントロール
- 11. 再利用可能なプリプロセッサ__COUNTER__
- 12. 再利用可能なリモートモーダルレール
- 13. 再利用可能な、
- 14. 再利用可能なビュー?
- 15. 再利用可能なWicketコンポーネントを構築する
- 16. Angular CLI - 再利用可能なコンポーネントのイメージパスの参照方法
- 17. データを待つ再利用可能なコンポーネント
- 18. はネイティブリアクト:再利用可能なコンポーネントのthis.stateは
- 19. Gatsby独自のクエリで再利用可能なコンポーネント
- 20. 再利用可能なコンポーネントを作成するreactys
- 21. 再利用可能なコンポーネントを含むダッシュボードのレンダリング
- 22. Ionic2でカスタム再利用可能なアラート(またはモーダル)コンポーネント
- 23. 再利用可能なコンポーネントを定義する
- 24. 作るreactjsで再利用可能なコンポーネント
- 25. Angular2再利用可能なコンポーネントの追加と編集
- 26. KnockoutJSで再利用可能なコンポーネントを作成する
- 27. 再利用可能なコンポーネントをカスタムメソッドで構築する
- 28. Vue.jsで再利用可能なコンポーネントを作成する方法
- 29. Golangテストの再利用可能なコンポーネントとフィクスチャ
- 30. 再利用可能なネストされたVueJSコンポーネント
BorderPaneを使用すると、ボタンが下部に表示され、fxmlファイルの中央だけが変更されます。 – GOXR3PLUS
シンプルで効果的!ありがとう、私はこれについて考えなかった。 –