public class Test4HW3Sample { public static void main(String[] args){ HW3Sample p1 = new HW3Sample(); System.out.println("名前: " + p1.getName()); System.out.println("身長(cm): " + p1.getHeight()); System.out.println("体重(kg): "+p1.getWeight()); System.out.println("BMI: " + String.format("%.2f", p1.calcBMI())); System.out.println("判定: " + HW3Sample.getMessage(p1.calcBMI())); System.out.println(); HW3Sample p2 = new HW3Sample("ふがよ", 234.5, 50.0); System.out.println("名前: " + p2.getName()); System.out.println("身長(cm): " + p2.getHeight()); System.out.println("体重(kg): "+p2.getWeight()); System.out.println("BMI: " + String.format("%.2f", p2.calcBMI())); System.out.println("判定: " + HW3Sample.getMessage(p2.calcBMI())); System.out.println(); HW3Sample.setBorder1(5.0); HW3Sample.setBorder2(8.0); System.out.println("判定: " + HW3Sample.getMessage(p2.calcBMI())); } }
import javafx.application.Application; import javafx.stage.*; import javafx.scene.*; import javafx.scene.control.*; import javafx.scene.layout.*; public class G14HW3 extends Application { @Override public void start(Stage pstage) { HW3PaneSample hw3pane1 = new HW3PaneSample(); HW3PaneSample hw3pane2 = new HW3PaneSample(); HBox root = new HBox(hw3pane1, hw3pane2); root.getStyleClass().add("myPane"); Scene scene = new Scene(root); scene.getStylesheets().add("hw3pane.css"); pstage.setScene(scene); pstage.setTitle("G14HW3"); pstage.sizeToScene(); pstage.show(); } public static void main(String[] args) { launch(args); } }
ちなみに,3つのクラスの関係は下図のようになってます(Sampleのついてないクラス名で説明しています).
以下のことをやって,作ったソースファイルを moodle の該当の場所へ提出してください. ファイル名の間違いに注意
以下のAPI仕様を満たす HW3 クラスを作ろう
- HW3()
- 名前 "ほげお",身長 170.0[cm],体重 62.0[kg]のインスタンスを生成.
- HW3(String n, double h, double w)
- 名前 n,身長 h[cm],体重 w[kg]のインスタンスを生成.
- void setName(String n)
- このインスタンスの名前を n にする.
- void setHeight(double h)
- このインスタンスの身長を h にする.
- void setWeight(double w)
- このインスタンスの体重を w にする.
- String getName()
- このインスタンスの名前の値を返す.
- double getHeight()
- このインスタンスの身長の値を返す.
- double getWeight()
- このインスタンスの体重の値を返す.
- double calcBMI()
- このインスタンスのBMIを計算して返す. \( \textrm{BMI} = (\mbox{体重[kg]}) / (\mbox{身長[cm]}/100)^2 \)
- static String getMessage(double bmi)
- bmi が「境界値その1」 未満,「境界値その1」 以上 「その2」 未満,「境界値その2」 以上の三つの場合に応じた文字列を返す.戻り値は,順に "やせてんなぁ","ふつー","太ってる…かな?". (※注意: 以前の課題と違い,返す文字列にはBMIの値は含みません)
- static void setBorder1(double val)
- このクラスのBMIの「境界値その1」の値を val にする.(※注意: このメソッドを呼ぶことで代入される境界値の大小が逆になることもありえるが,それをチェックしたりはしなくてよい)
- static void setBorder2(double val)
- このクラスのBMIの「境界値その2」の値を val にする.(注意: 上に同じ)
- static double getBorder1()
- このクラスのBMIの「境界値その1」の値を返す.
- static double getBorder2()
- このクラスのBMIの「境界値その2」の値を返す.
以下のことをやって,作ったソースファイルを moodle の該当の場所へ提出してください. ファイル名の間違いに注意.
の成果を,Graphicsチームの方で紹介してます(Doraる?).大学院楽しいよ
import javafx.scene.layout.*; import javafx.scene.canvas.*; import javafx.scene.paint.*; public class DoraPane extends Pane{ public DoraPane(){ Canvas canvas = new Canvas(300, 300); this.getChildren().add(canvas); this.setStyle("-fx-background-color: white;"); this.draw(canvas); } private void draw(Canvas c){ // 今はまだ空っぽ } }
import javafx.application.Application; import javafx.stage.*; import javafx.scene.*; import javafx.scene.control.*; import javafx.scene.layout.*; public class G13Dora extends Application { @Override public void start(Stage pstage) { DoraPane dora = new DoraPane(); BorderPane root = new BorderPane(); root.setCenter(dora); Scene scene = new Scene(root); pstage.setScene(scene); pstage.setTitle("G13Dora"); pstage.sizeToScene(); pstage.show(); } public static void main(String[] args) { launch(args); } }
draw メソッドの中身を書いて,Doraを描こう.ただし,
提出するのは,DoraPane.java のみです.
以下のことをやって,作ったソースファイルを moodle の該当の場所へ提出してください. ファイル名の間違いに注意.
次のことをやりましょう.
次のことに注意
this.getChildren().add(canvas);して,これ(DoraPaneのインスタンス)に canvas を載せてました(cf. #kadaiB).HW3Pane の場合は,canvas のかわりに GridPane のインスタンスを載せる,そしてその GridPane のインスタンスには Label とか TextField とか載せる,と考えたらよいでしょう
String.format("%.2f", double型の値)とすればよい.このメソッドの戻り値は String である.
次回授業までに必ずやっておくこと
次回の授業の資料(PDFや動画)等は こちら からどうぞ.
キャンパス内各所に設置されたプリンタで印刷することもできます.くわしくは「ポータル > 情報環境 > マニュアル > 印刷利用マニュアル」参照.
学内の実習室等に設置の PC ではスピーカから音が出ませんので,イヤフォン/ヘッドフォンを用意する必要あり
これはおまけ課題です.やらなくても減点になりません.やったら加点かも
(moodle の「おまけ課題」のところに,「自由課題」というのを書いときました.よかったら見てね)
今回出題のおまけ課題はありません.../ex14#kadaiS をどうぞ.