忍者ブログ

からすまる日誌 java

実践2(4) javaイベント課題2の提出

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

実践2(4) javaイベント課題2の提出

プリント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();
 }
}

 

PR

コメント

ブログ内検索

P R