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

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

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

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

Java

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

コンストラクタ

オブジェクト指向言語において、オブジェクトを生成時に呼び出され、データの初期化などを行なう関数・メソッドのことである。

Q&A

2回答

2548閲覧

HBox 適切なコンストラクタが見つからない エラー

arc33

総合スコア0

JavaFX

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

Java

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

コンストラクタ

オブジェクト指向言語において、オブジェクトを生成時に呼び出され、データの初期化などを行なう関数・メソッドのことである。

0グッド

0クリップ

投稿2020/07/10 14:22

前提・実現したいこと

身長、体重を変更(入力)することでBMIとそれに対するメッセージから表示されるようにしたいのですが、
イベント処理以外を作ったところで実行すると以下のエラーが出ました。

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

G.java:12: エラー: HBoxに適切なコンストラクタが見つかりません(HW3Pane2,HW3Pane2) HBox root = new HBox(hw3pane1, hw3pane2); ^ コンストラクタ HBox.HBox()は使用できません (実引数リストと仮引数リストの長さが異なります) コンストラクタ HBox.HBox(double)は使用できません (実引数リストと仮引数リストの長さが異なります) コンストラクタ HBox.HBox(Node...)は使用できません (可変引数の不一致: HW3Pane2をNodeに変換できません:) コンストラクタ HBox.HBox(double,Node...)は使用できません (引数の不一致: HW3Pane2をdoubleに変換できません:)

該当のソースコード

import文は省略
自分で書いている部分

java

1public class HW3Pane2{ 2 3 public HW3Pane2(){ 4 HW3 hw3 = new HW3(); 5 TextField tfn = new TextField(); 6 TextField tfh = new TextField(); 7 TextField tfw = new TextField(); 8 Label bmi = new Label(""); 9 Label Message = new Label(""); 10 GridPane pane = new GridPane(); 11 pane.setPrefSize(300,200); 12 tfn.setText(hw3.getName()); 13 tfh.setText(String.format("%.1f",hw3.getHeight())); 14 tfw.setText(String.format("%.1f",hw3.getWeight())); 15 bmi.setText(String.format("%.2f",hw3.calcBMI())); 16 Message.setText(hw3.getMessage(hw3.calcBMI())); 17 pane.addRow(0,new Label("名前"),tfn); 18 pane.addRow(1,new Label("身長(cm)"),tfh); 19 pane.addRow(2,new Label("体重(kg)"),tfw); 20 pane.addRow(3,new Label("BMI"),bmi); 21 pane.addRow(4,new Label("判定"),Message); 22 pane.setStyle("-fx-background-color: #87CEEB;"); 23 } 24}

与えられている部分

java

1public class G extends Application { 2 @Override 3 public void start(Stage pstage) { 4 HW3Pane2 hw3pane1 = new HW3Pane2(); 5 HW3Pane2 hw3pane2 = new HW3Pane2(); 6 HBox root = new HBox(hw3pane1, hw3pane2); 7 root.getStyleClass().add("myPane"); 8 Scene scene = new Scene(root); 9 scene.getStylesheets().add("hw3pane.css"); 10 pstage.setScene(scene); 11 pstage.setTitle("G14HW3"); 12 pstage.sizeToScene(); 13 pstage.show(); 14 } 15 public static void main(String[] args) { 16 launch(args); 17 } 18}

java

1public class HW3{ 2 3 private String name; 4 private double height; 5 private double weight; 6 7 public static double Border1=20; 8 public static double Border2=25; 9 10 public HW3(){ 11 this("ほげお" ,170.0 ,62.0); 12 } 13 public HW3(String n ,double h ,double w){ 14 this.name=n; 15 this.height=h; 16 this.weight=w; 17 } 18 public void setName(String n){ 19 this.name=n; 20 } 21 public void setHeight(double h){ 22 this.height=h; 23 } 24 public void setWeight(double w){ 25 this.weight=w; 26 } 27 public String getName(){ 28 return this.name; 29 } 30 public double getHeight(){ 31 return this.height; 32 } 33 public double getWeight(){ 34 return this.weight; 35 } 36 public double calcBMI(){ 37 return this.weight/((this.height/100)*(this.height/100)); 38 } 39 public static String getMessage(double bmi){ 40 if(bmi<Border1) 41 return "やせてんなぁ"; 42 else if (bmi<Border2) 43 return "ふつー"; 44 else 45 return "太ってる…かな?"; 46 } 47}

試したこと

SampleでのHW3クラス、Gクラスは実行可能でした。

javafx

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2020/07/10 15:04

エラーの通り引数の型を確認してください。
arc33

2020/07/11 05:48

引数の型の確認はどうやっらいいのですか? 基本的な質問かもしれませんが
退会済みユーザー

退会済みユーザー

2020/07/11 05:55

javadoc を読んでください。 説明書(ドキュメント)を読まずに使えるものなんてプログラムにはないです。
shiketa

2020/07/11 12:01

> 引数の型の確認はどうやっらいいのですか? あれま。そのために、回答で説明書へのリンクを張ってあげたのになぁ orz
arc33

2020/07/11 13:21

説明書のリンクありがとうございました。 確認したのですがどこ直せばエラーがなくなるのか分かりません。
guest

回答2

0

とりあえず、今現在エラーが出てる場所と、引数がメモリ以外になんの影響もあ縦ないので

diff

1- HBox root = new HBox(hw3pane1, hw3pane2); 2+ HBox root = new HBox();

でいいです。

投稿2020/07/11 15:16

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

# 与えられている、てことは課題ですかね。

  1. HBoxのコンストラクタを確認する。
  2. あなたが、HBox root = new HBox(hw3pane1, hw3pane2);でHBoxのコンストラクタに渡している、hw3pane1とhw3pane2の型を確認する。
  3. 型が一致していないなら、型を合わせるか、あきらめる

@arc33 2020/07/11 22:21

説明書のリンクありがとうございました。
確認したのですがどこ直せばエラーがなくなるのか分かりません。

正解や解説はせんせーに訊いてください。とりあえず、ひとつの案として。

diff

1diff --git a/HW3Pane2.java b/HW3Pane2.java 2--- a/HW3Pane2.java 3+++ b/HW3Pane2.java 4@@ -2,7 +2,7 @@ 5 6-public class HW3Pane2 { 7+public class HW3Pane2 extends GridPane { 8 9 Label Message = new Label(""); 10- GridPane pane = new GridPane(); 11+ GridPane pane = this;

投稿2020/07/11 01:23

編集2020/07/11 14:28
shiketa

総合スコア4061

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

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

arc33

2020/07/11 04:57

型を合わせるには何を変更したらいいのですか?
退会済みユーザー

退会済みユーザー

2020/07/11 05:05 編集

@arc33 課題を与えられたならその前に教示があったはずですが
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問