提出期限: 0703金 18:30
Graphics20XYフォルダ/ディレクトリで作業しているひとと,gr2020 プロジェクトで作業してるひと,それぞれでやるべきことが違います.
Graphics2020フォルダ/ディレクトリで作業してるひとは
DoraPaneSample.class G12DoraSample.class
上記リンク先の2つクラスファイルをダウンロードして Graphics2020 に置き,G12DoraSample を実行してみなさい.
gr2020プロジェクトで作業してるひとは G12DoraSample.jar
上記 jar ファイルをダウンロードして gr2020/lib に置き,実行してみなさい. jar ファイルの実行の仕方については,Graphics/2020/ex12#kadaiA を参考に
G12DoraSample の動作をよく観察しよう
これはいったい誰でしょう? (1) ドラエモン (2) トラえもん (3) ドラ之もん (4) どらえもん (5) どらエモソ
G12DoraSample と同じことをするクラス G12Dora を作ろう(ver.1)
まずは,以下をそのまま作って動かしてみよう. このプログラムは,DoraPaneSample クラスを利用している. DoraPaneSample クラスは後述のように Pane のサブクラスであり,Label や Button といったオブジェクトと同様のGUIコンポーネントとして扱える.
import javafx.application.Application; import javafx.stage.*; import javafx.scene.*; import javafx.scene.control.*; import javafx.scene.layout.*; //import javafx.event.*; public class G12Dora extends Application { @Override public void start(Stage pstage) { DoraPaneSample dora = new DoraPaneSample(); Label label = new Label(); BorderPane root = new BorderPane(); root.setCenter(dora); root.setBottom(label); Scene scene = new Scene(root); pstage.setScene(scene); pstage.setTitle("G12Dora"); pstage.sizeToScene(); pstage.show(); } public static void main(String[] args) { launch(args); } }
G12DoraSample と同じことをするクラス G12Dora を作ろう(ver.2)
G12Dora を修正して,G12DoraSample と同じ動作をさせよう. 以下に示す DoraPaneSample クラスのAPI仕様 を参考にすればよい. ただし,このAPI仕様に示されたすべての項目を使用すること.
ヒント:
if (ほげ.onNose(X, Y)) ...
提出しよう
完成した G12Dora.java をこの科目の Moodle コース上の当該の場所へ提出してください.このファイルは締切後に半自動的に処理します.コンパイルエラーになる,ファイル名が違う,といったことのないように注意すること.ファイル名の間違い(大文字小文字も)に注意.
javafx.scene.layout.Pane のサブクラス
- DoraPaneSample()
- 「Dora」が描かれた Pane のインスタンスを生成.大きさは300x300.背景は白色.
- boolean onNose(double x, double y)
- 座標 (x, y) が「Dora」の鼻の領域内(注)だったら true, さもなくば false.
- String mEntered
- "ぼくどらちゃん"
- String mClicked
- "どらやき食べたい"
- String mOnNose
- "いたい!いたい!"
- String mExited
- "ばいばい"
注: DoraPaneSampleでは,鼻の領域は (150, 150) を中心とする半径15の円とその内部.
提出期限: 0710金 4講時開始後少し経ったら(正確な時間は近日中にお知らせします)
→ 提出期限: 0710金 15:50
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); } }
完成した DoraPane.java (のみ)をこの科目の Moodle コース上の当該の場所へ提出してください.このファイルは締切後に半自動的に処理します.コンパイルエラーになる,ファイル名が違う,といったことのないように注意すること.ファイル名の間違い(大文字小文字も)に注意.
の成果を見ます?
期限: 0710金23:59.これはおまけ課題です.やらなくても減点になりません.やったら加点かも
上記リンク先の jar ファイルをダウンロードして,実行してみよう. これと同じ動作をするプログラムを作ろう.次のように考えたらよい.