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

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

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

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

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

1849閲覧

javaFXでペインのサイズを指定し固定したい

takutomi

総合スコア7

JavaFX

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

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

1グッド

0クリップ

投稿2019/12/11 16:20

編集2019/12/11 16:26

前提・実現したいこと

javaFXを使用しGUIアプリケーションの作成をしております。
その際に、ボタンの横幅や縦幅を指定するみたいにペイン(ボーダーペインやフローペインなど),VBox,HBoxなどの要素のサイズを自分で指定し固定したいです。

発生している問題・エラーメッセージ

サイズの指定をしても親のノードの全体に広がってしまいます。
サイズを指定する方法や似たような表示になる方法ありましたら教えてください。
また参考画像も添付しておきます。
よろしくお願いします。
ちなみに今回は分かりやすくするためにペインに背景色をつけております。

理想の表示
イメージ説明

実際の表示
イメージ説明

該当のソースコード

java

1public class Main extends Application { 2 3 @Override 4 public void start(Stage primaryStage) { 5 6 StackPane stack = new StackPane(); 7 stack.setStyle("-fx-background-color: Red;"); 8 9 BorderPane border = new BorderPane(); 10 border.setStyle("-fx-background-color: Blue;"); 11 border.setPrefSize(300,200); 12 stack.getChildren().add(border); 13 14// こちらも結果は同じでした 15// Pane canvas = new Pane(); 16// canvas.setStyle("-fx-background-color: Blue;"); 17// canvas.setPrefSize(200,200); 18// stack.getChildren().add(canvas); 19 20 Scene scene = new Scene(stack,600,400); 21 primaryStage.setScene(scene); 22 primaryStage.show(); 23 24 } 25 26 public static void main(String[] args) { 27 launch(args); 28 } 29} 30

参考にしたサイト

https://docs.oracle.com/javase/jp/8/javafx/api/javafx/scene/layout/Pane.html

https://docs.oracle.com/javase/jp/8/javafx/layout-tutorial/size_align.htm

補足情報(FW/ツールのバージョンなど)

環境
eclipse
java8

TN8001👍を押しています

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

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

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

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

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

guest

回答2

0

ベストアンサー

JavaFXは全然やったことがないので見当違いかもしれませんが、

border.setPrefSize(300,200);

Java

1border.setPrefSize(300,200); 2border.setMaxSize(Control.USE_PREF_SIZE,Control.USE_PREF_SIZE);

もしくは単に

Java

1border.setMaxSize(300,200);

でいいんじゃないでしょうか?

投稿2019/12/13 06:18

TN8001

総合スコア9326

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

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

takutomi

2019/12/13 13:05

回答ありがとうございます。 実行してみたところイメージしていた通りになりました。 助かりました。ありがとうございます。
guest

0

Java

1 StackPane stack = new StackPane();

ではなくて

Java

1 AnchorPane stack = new AnchorPane();

を使ってみたらどうでしょうか。

Java

1 AnchorPane stack = new AnchorPane(); 2 stack.setStyle("-fx-background-color: Red;"); 3 4 5 BorderPane border = new BorderPane(); 6 border.setStyle("-fx-background-color: Blue;"); 7 border.setPrefSize(300,200); 8 stack.getChildren().add(border); 9 10 stack.setTopAnchor(border, 100d); // 上をどれくらいあけるか 11 stack.setLeftAnchor(border, 200d); // 左を… 12 stack.setRightAnchor(border, 200d); // 右を… 13 stack.setBottomAnchor(border, 100d); // 下の… 14 15 Scene scene = new Scene(stack,600,400); 16 primaryStage.setScene(scene); 17 primaryStage.show();

実行結果
実行結果

投稿2019/12/13 05:18

ababa_Sigrun

総合スコア279

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

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

takutomi

2019/12/13 13:12

回答ありがとうございます。 アンカーペインにこのような使い方があったんですね。 全く知りませんでした。細かく位置を調整したいときに活用させていただきたいと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問