授業ノートのまとめ
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
プリントEXE28の発展形。
--->kadai_EXE28.java
package application;
import javafx. application.Application;
import javafx.event.ActionEvent;
import javafx.geometry.Pos;
import javafx. scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx. stage.Stage;
public class kadai_EXE28 extends Application {
Image[] myImage = new Image[5]; //配列で画像をランダム決定
int boxX = 50; //画像を表示させるときの枠のサイズ 初期値50
int boxY = 50;
int setY = 10; //画像初期表示位置
int cnt = 0; //ボタンを押した回数
int last_ran; //最後に出たランダムの数を格納する
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage myStage) {
Canvas canvas = new Canvas(300,240);
GraphicsContext gc = canvas.getGraphicsContext2D();
//画像に関して
myImage[0] = new Image("tako.png");
myImage[1] = new Image("oosan.png");
myImage[2] = new Image("human.png");
myImage[3] = new Image("panda.png");
myImage[4] = new Image("abura.png");
//ボタンに関して
Button btn01 = new Button("このボタンを5回押す");
Button btn02 = new Button("画像を消す");
Label l1 = new Label(" "); //はじめはからっぽ
Label l2 = new Label(" ");
BorderPane pane = new BorderPane();
pane.setStyle("-fx-background-color:white;");
HBox hbox = new HBox();
hbox.getChildren().addAll(btn01); //,btn02);
VBox vbox = new VBox();
vbox.getChildren().addAll(l1,l2,btn02); //まずここでVboxのpaneを作っていれる
btn01.setAlignment(Pos.CENTER);
hbox.setAlignment(Pos.CENTER);
vbox.setAlignment(Pos.CENTER);
pane.setTop(hbox);
pane.setBottom(vbox);
pane.setCenter(canvas);
//関数
btn01.setOnAction((ActionEvent event)->{
if(cnt<5) { //5回押してないとき
int ran = (int)(Math.random()*5);//ランダム
System.out.println("ran is"+ran);
gc.drawImage(myImage[ran], 10, setY, boxX, boxY);
boxX *= 1.65;
boxY *= 1.65;
setY += -2;
cnt ++;
last_ran = ran;//ランダムの数を格納
System.out.println("cnt is"+cnt);
}
if(cnt==5) { //5回押したときにメッセージを出す
if(last_ran==0) {
l1.setText("あなたの今日のラッキーいきものはタコ!");
l2.setText("賢いコーティングを心がけるといいでしょう");
}else if(last_ran==1) {
l1.setText("あなたの今日のラッキーいきものはオオサンショウウオ!");
l2.setText("水気のあるコーティングを心がけるといいでしょう");
}else if(last_ran==2) {
l1.setText("あなたの今日のラッキーいきものは人間!");
l2.setText("人間味のあるコメントを入れるといいでしょう");
}else if(last_ran==3) {
l1.setText("あなたの今日のラッキーいきものはパンダ!");
l2.setText("白黒はっきりしたデザインを組んでみるといいでしょう");
}else if(last_ran==4) {
l1.setText("あなたの今日のラッキーいきものはアブラボウズ!");
l2.setText("おいしいご飯をたべて元気を出しましょう");
}
}
});
btn02.setOnAction((ActionEvent event)->{
//System.out.println("here is in clear");
gc.clearRect(0, 0, 500, 500);
boxX = 50;//初期値に戻す
boxY = 50;
setY = 10;
cnt = 0;
l1.setText("");
l2.setText("");
System.out.println("cnt is"+cnt);
});
Scene scene = new Scene(pane,300,350);
myStage.setTitle("Exe28 今日の占い");
myStage.setScene(scene);
myStage.show();
}
}