JavaFXで1つ以上のオープンペインでアコーディオンを使用することはできますか?JavaFXアコーディオンと複数の開いたペイン
答えて
いいえ、JavaFX 2.2 Accordionは、一度に1つの開いているペインしか持つことができません。
一度に複数のペインをアコーディオンで開くことができる機能の拡張リクエスト(JDK-8090554 StackedTitledPanes control)を作成しましたが、機能リクエストは現在実装されていません。
一方、複数のTitledPaneインスタンスを作成してVBoxに配置することで、同様のコントロールを簡単に作成できます。
private VBox createStackedTitledPanes() {
final VBox stackedTitledPanes = new VBox();
stackedTitledPanes.getChildren().setAll(
new TitledPane("Pane 1", contentNode1),
new TitledPane("Pane 2", contentNode2),
new TitledPane("Pane 3", contentNode3)
);
((TitledPane) stackedTitledPanes.getChildren().get(0)).setExpanded(true);
return stackedTitledPanes;
}
必要であれば、その領域が使用可能な領域をオーバーフローした場合、あなたの拡大ペインのすべての内容が使用可能であることができるように、あなたは、ScrollPaneであなたのペインを含むVBox
をラップすることができます。
私はsample solutionを作成しました(アイコンは、リンクウェアはhttp://www.fasticon.comです)。埋め込みビューのための
私はわずかに異なる要件
- を持っていたアコーディオンは、ビュー空間を展開または管理のいずれか
- ビュー全体が
- スクロールビューに入れることができ、すべてボックスは、アコーディオンが固定サイズの場合は全体ビューのサイズに完全に展開され、固定ビューでない場合はコンテンツのサイズに展開されます。
私の場合、私は、次の修正を思い付くことができた、3及びテスト2の全てを満たすことができませんでしたが:VBoxので、ScrollPaneのを使用してください)
1内側にはTitledWindowsがあります。 2)TitledPanesがVBox.grow = "SOMETIMES"に設定されていることを確認してください。 3)VBoxを最後の要素として追加し、VBox.vgrow = "ALWAYS"を設定します。これにより、TitledPanesを最小サイズにプッシュします。他のみんなは(SceneBuilderで生成された)あなたはFXMLを使用したい、またはJavaを使用したくない場合は、単に要素を使用すると、直接同じようにうまく動作し、コード例を提供しています
<ScrollPane fitToHeight="true" fitToWidth="true" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<content>
<VBox fx:id="leftVBox" maxHeight="1.7976931348623157E308" prefHeight="200.0" prefWidth="100.0">
<children>
<TitledPane fx:id="titledPanelOne" animated="false" expanded="false" style="-fx-background-color: red;" text="Pane One" VBox.vgrow="SOMETIMES">
<content>
<ListView fx:id="listViewOne" maxHeight="1.7976931348623157E308" prefHeight="200.0" prefWidth="200.0" />
</content>
</TitledPane>
<TitledPane fx:id="titledPanelTwo" animated="false" expanded="false" style="-fx-background-color: green;" text="Pane Two" VBox.vgrow="SOMETIMES">
<content>
<ListView fx:id="listViewTwo" maxHeight="1.7976931348623157E308" prefHeight="200.0" prefWidth="200.0" />
</content>
</TitledPane>
<VBox prefHeight="0.0" prefWidth="0.0" VBox.vgrow="ALWAYS" />
</children>
</VBox>
</content>
</ScrollPane>
4)、これはありませんが、互いに独立して展開/縮小する積み重ねボックスを取得します。これは、コンテンツに適切にサイズ変更されないボックス(たとえば、上の例のようにリストビューが埋め込まれている場合)を持つ問題を修正するものではありません。スクリーンの不動産がたくさん残っていると、スクロールする必要があります。ソリューション? Javaのビットが必要です。
この修正プログラムを実装するために、我々は最初のTitledPaneのmaxHeightProperty()
外のVBoxのheightProperty()
をバインド:
public class Controller implements Initializable {
//... controller code
@Override
public void initialize(URL location, ResourceBundle resources) {
//...
variablesViewPane.maxHeightProperty().bind(leftVBox.heightProperty());
historyViewPane.maxHeightProperty().bind(leftVBox.heightProperty());
}
}
ザ・私たちは、各ペインのexpandedProperty()
に結合し、かつ動的にprefHeighProperty()
を結合して、アンバインド:
private static void bindExpanded(TitledPane pane, ReadOnlyDoubleProperty prop) {
pane.expandedProperty().addListener((observable, oldValue, newValue) -> {
if(newValue) {
pane.prefHeightProperty().bind(prop);
} else {
pane.prefHeightProperty().unbind();
pane.prefHeightProperty().set(0);
}
});
}
表示されている場合は、VBoxと同じ大きさにする図示されていないが、できるだけ小さくするように求める。このようにすることの利点は、レイアウトが、現在表示されているTitledPaneの数に基づいて利用可能な高さを自動的に計算して、われわれが望む動作に正確に導くことです。
私はここでは詳細に入る:
- 1. JavaFX重複ペイン
- 2. javafxのペインからhtmlファイルを開始
- 3. JavaFXのキャンバスサイズをペイン
- 4. JavaFXアコーディオン効果
- 5. JavaFX:ペインへのトラブルバインディングのプロパティ
- 6. 複数ページのアコーディオン
- 7. JavaFx描画イメージ内部ペイン
- 8. JavaFXボタンを1つのペインから別のペインにドラッグ
- 9. iTermで複数のペインを開く方法は?
- 10. JavaFX別のペインの同じテキストエリア
- 11. jQueryUIアコーディオンを使用し、それが新しい "ペイン"
- 12. JavaFxペイン内のシーンを作成
- 13. JavaFXの8日付ピッカー月 - 年 - ペインが
- 14. JavaFX:画像をペインに保存する
- 15. JavaFXでペインを切り替える
- 16. javafxでペインをリフレッシュする方法
- 17. JavaFXでペインを拡大する
- 18. javafxでペインにサークルを配置する
- 19. 矢印を描く方法JavaFX? (ペイン)
- 20. 親ペインにJavaFXの-fx-border-radiusがある場合の子ペインのCSSスタイル
- 21. xとyの座標を持つJavafxペイン
- 22. JavaFX複数行
- 23. JavaFx複数のレイアウト
- 24. 複数のJavaFX TextArea
- 25. jQueryのアコーディオン - オープン複数のパネル一度
- 26. JavaFXペインをプラグインとして動的にロードする
- 27. JavaFXのアコーディオンが折りたたまれないようにする
- 28. コンテンツスライダの停止とアコーディオンの開始
- 29. アコーディオンの崩壊とが開いているとき
- 30. ペインに基づいてカスタムJavaFXコントロールを実装する方法
こんにちは、あなたのサンプルのための感謝を。それは私にとってはうまくいくでしょう。 – sight
機能リクエストリンクがもう機能しません。 –
はい、JavaFX固有のjira問題追跡システムは廃止されました。私が知る限り、そのシステムからの問題と機能要求は、公式のJDKの問題追跡システムに転送されましたが、そのシステムで関連する問題を見つける方法やリンクする方法がわかりません。このコントロールの公式のJDK機能リクエストプロセスを行うのではなく、[third party ControlsFX library](http://fxexperience.com/controlsfx/)の開発者に連絡し、StackedTitledPanesコントロールを追加することに興味があるかどうかを確認することをお勧めします彼らの図書館。 – jewelsea