質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Q&A

解決済

1回答

11883閲覧

画面サイズ変更による内部コントロールサイズの自動リサイズ

XCUBE

総合スコア101

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

1グッド

1クリップ

投稿2015/10/14 02:37

編集2015/10/14 02:40

SplitPaneを使って三分割した画面のFXMLを作ってみたのですが、メニューバーが必要になり
とりあえずVBoxを親コンテナとして囲みました。

囲む前は画面外枠のサイズをマウスで変更すると三分割した中のコントロールも
自動的に連動してリサイズしていたのですが

イメージ説明

VBoxで囲んだら中のコントロールのサイズが固定され画面のサイズにまったく連動しなくなりました。

イメージ説明

VBox以外の親コンテナにしても同様の現象となります。

そもそも自動リサイズについてはどのように実装するのか、私自身理解していないのですが
何が自動リサイズに作用しているのでしょうか?
また、VBoxで囲んでも自動リサイズするにはどうしたらよいのでしょうか?


VBoxで囲む前のFXMLのコード

<?xml version="1.0" encoding="UTF-8"?> <?import java.lang.*?> <?import javafx.scene.control.*?> <SplitPane dividerPositions="0.5" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> <items> <SplitPane dividerPositions="0.5" orientation="VERTICAL" prefHeight="200.0" prefWidth="160.0"> <items> <ListView prefHeight="200.0" prefWidth="200.0" /> <TableView prefHeight="200.0" prefWidth="200.0"> <columns> <TableColumn prefWidth="75.0" text="C1" /> <TableColumn prefWidth="75.0" text="C2" /> </columns> </TableView> </items> </SplitPane> <ScrollPane prefHeight="200.0" prefWidth="200.0" /> </items> </SplitPane>

VBoxで囲んだ後のFXMLコード

<?xml version="1.0" encoding="UTF-8"?> <?import java.lang.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <HBox xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> <children> <SplitPane dividerPositions="0.5" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0"> <items> <SplitPane dividerPositions="0.5" orientation="VERTICAL" prefHeight="200.0" prefWidth="160.0"> <items> <ListView prefHeight="200.0" prefWidth="200.0" /> <TableView prefHeight="200.0" prefWidth="200.0"> <columns> <TableColumn prefWidth="75.0" text="C1" /> <TableColumn prefWidth="75.0" text="C2" /> </columns> </TableView> </items> </SplitPane> <ScrollPane prefHeight="200.0" prefWidth="200.0" /> </items> </SplitPane> </children> </HBox>
退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

VBoxではなくAnchorPaneを使って標準サイズ属性をデフォルトにことで解決しました。

AnchorPaneだとメニューバーと3分割画面が重なり、VBoxで縦並びにしてレイアウトすることに
執着していたのですが、3分割画面のコンテナをAnchorPaneのTOPからずらすことで
メニューバーを配置できました。

<?xml version="1.0" encoding="UTF-8"?> <?import java.lang.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <AnchorPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"> <children> <MenuBar AnchorPane.topAnchor="0.0"> <menus> <Menu mnemonicParsing="false" text="File"> <items> <MenuItem mnemonicParsing="false" text="Close" /> </items> </Menu> <Menu mnemonicParsing="false" text="Edit"> <items> <MenuItem mnemonicParsing="false" text="Delete" /> </items> </Menu> <Menu mnemonicParsing="false" text="Help"> <items> <MenuItem mnemonicParsing="false" text="About" /> </items> </Menu> </menus> </MenuBar> <SplitPane dividerPositions="0.5" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="26.0"> <items> <SplitPane dividerPositions="0.5" orientation="VERTICAL"> <items> <ListView /> <TableView> <columns> <TableColumn prefWidth="112.0" text="C1" /> <TableColumn prefWidth="114.0" text="C2" /> </columns> </TableView> </items> </SplitPane> <ScrollPane /> </items> </SplitPane> </children> </AnchorPane>

投稿2015/10/14 05:38

編集2015/10/14 05:47
XCUBE

総合スコア101

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問