ところでさっきのCalcLogicにコメント付け加えますよ
/**
整数a,bを加算する
*/
最初のアスタリスクは2つで。
→
コマンドプロンプトでjavadoc
>javadoc CalcLogic.java
すると、フォルダにhtmlが作られる。
allpackages-index.html
自動で説明文を作ってくれるらしいのだ。
イベントを使ったプログラムを作る
1月真ん中ぐらいまでに提出。今日でもよろしい。
プログラムは数をこなすのが大事
本を写すのは理解するだけ
スキルアップは「自分で考えて」作るのがよろしい
プリント全部やってから課題してもいいし
好きにしていい
実習の各問題解説
実習問題30
void 返り値なし
void setText(String text)
getTextは戻り値があるよ
String getText()
実習問題31
3つ縦に並んでいる部分はvboxを使う
その部分をtopにのせる
実習問題32
setOnMouseMovedがきも。
前の残像を消したいからクリアしといて、
座標をもらって
マウスのある場所にその画像を表示するというロジック
実習問題33
32の亜種。クリックしたらそこに画像がという変更。
実習問題34
setOnMousePressed おしたときの座標を取得し
setOnMouseDragged マウスドラッグしたとき線を書く
線を書いていくサンプル
実習問題35
34のチャレンジ問題
この35をイベント課題として作ってもよろしい
最終課題のA じゃんけん
最終課題のB BMIを割り出す
さっきの練習6-3ですが、
java.lang.Thread
の指定が分からなかったでしょう
ページまではいけるようになった
ただしここには例文がない
みるのはここ
→メソッドのサマリー
→すべてのメソッド
→sleep
もうひとつ重要なこと。
クラス.メソッド()と基本的になんでも綴るということを覚えなさい。
クラス、ドット、メソッドという基本形に当てはめるようにこの部分をよむのだ
①教科書にはすでに「java.lang.Threadクラスを調べ」とある。つまりThreadはクラスである。(前半部分解決)
②「すべてのメソッド」というのは後半部分のドットの後の箇所である。ここの説明を読んで、なにかしらプログラムを停止する内容が書いてあるものをさがせ
voidとかstatic voidというのはとりあえず関係ないとして、右側をみるのだ
④sleep(long millis)というメソッドがある。これで前半部分と後半部分が判明した
Thread.sleep();
⑤問題はlong millisが何かということである。このメソッドをクリックするとこのようにある
>システム・タイマーとスケジューラが正確であることを前提として、現在実行中のスレッドを、指定されたミリ秒数の間、スリープ(一時的に実行を停止)させます。スレッドはモニターの所有権を失いません。
「指定された」というのは、引数の意味。つまり括弧の中が「ミリ秒数」であると推測できる。
⑥全部を総合すると、
『クラス.メソッド()に何を当てはめるか』
→
Thread.sleep(3000);
ということなんですねー
あと5回ぐらい見なさい
--->Exe32.java
package application;
import javafx. application.Application;
import javafx.scene.Group;
import javafx. scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.image.Image;
import javafx.scene.paint.Color;
import javafx. stage.Stage;
public class EXE32 extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage myStage) {
Canvas canvas = new Canvas(300,300);
GraphicsContext gc = canvas.getGraphicsContext2D();
Image myImg1 = new Image("kobito1.gif");
canvas.setOnMouseMoved(e ->{
gc.clearRect(0, 0, canvas.getWidth(), canvas.getHeight());;
gc.drawImage(myImg1, e.getX(), e.getY());
});
Group root = new Group();
root.getChildren().add(canvas);
Scene scene = new Scene(root, 300, 300, Color.LIGHTGRAY);
myStage.setTitle("Exe32");
myStage.setScene(scene);
myStage.show();
}
}
--->Exe33.java
package application;
import javafx. application.Application;
import javafx.scene.Group;
import javafx. scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.image.Image;
import javafx.scene.paint.Color;
import javafx. stage.Stage;
public class EXE33 extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage myStage) {
Canvas canvas = new Canvas(300,300);
GraphicsContext gc = canvas.getGraphicsContext2D();
Image myImg1 = new Image("kobito1.gif");
canvas.setOnMouseClicked(e ->{
gc.clearRect(0, 0, canvas.getWidth(), canvas.getHeight());;
gc.drawImage(myImg1, e.getX(), e.getY());
});
Group root = new Group();
root.getChildren().add(canvas);
Scene scene = new Scene(root, 300, 300, Color.LIGHTGRAY);
myStage.setTitle("Exe32");
myStage.setScene(scene);
myStage.show();
}
}