おみくじのプログラムです。
このままだと連続で占いたいときに画像が連続で出てしまいます。なのでリセットボタンを作りたいです。どうすればうまく動かせますか?
import java.util.Random; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.FlowPane; import javafx.stage.Stage; //javaFXを使うときはpublicをつける。 public class FortuneTeller2 extends Application { public static void main(String[] args) { launch(args); } public void start(Stage myStage) { myStage.setTitle("占いアプリ"); FlowPane rootNode = new FlowPane(10, 10);//(横幅, 縦幅) rootNode.setAlignment(Pos.TOP_LEFT); // Sceneの作成 Scene myScene = new Scene(rootNode, 400, 500); // stage上にsceneを作成 myStage.setScene(myScene); // TextFiledの作成 TextField message = new TextField(); // TextFiledのサイズの設定 message.setPrefWidth(250); // テキストの設定 message.setText("占いたい人の名前を入力してください"); // labelを作成 Label response = new Label(); //Buttonの作成 Button btnSend = new Button("占う"); Button clear = new Button("リセット"); //Buttonが押された時の処理 btnSend.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent ae) { int i = new Random().nextInt(6); if (i==0) { response.setText("\n" +message.getText()+"の今日の運勢は、" + "大吉" + "です。"); //写真 Image img = new Image("https://2.bp.blogspot.com/-q62M2UFmkwQ/UZNyKgFFdNI/AAAAAAAASiI/_cZv1Si4jWE/s800/syougatsu2_omikuji.png"); ImageView logo = new ImageView(img); rootNode.getChildren().add(logo); } else if (i==1) { response.setText("\n" +message.getText()+"の今日の運勢は、" + "吉" + "です。"); //写真 Image img = new Image("https://2.bp.blogspot.com/-27IG0CNV-ZE/VKYfn_1-ycI/AAAAAAAAqXw/fr6Y72lOP9s/s800/omikuji_kichi.png"); ImageView logo = new ImageView(img); rootNode.getChildren().add(logo); } else if (i==2) { response.setText("\n" +message.getText()+"の今日の運勢は、" + "中吉" + "です。"); //写真 Image img = new Image("https://3.bp.blogspot.com/-_z-n-7gO3KA/T3K7MU3MdGI/AAAAAAAAE-k/8qs-jxqS4LE/s1600/omikuji_chuukichi.png"); ImageView logo = new ImageView(img); rootNode.getChildren().add(logo); } else if (i==3) { response.setText("\n" +message.getText()+"の今日の運勢は、" + "小吉" + "です。"); //写真 Image img = new Image("https://3.bp.blogspot.com/-nZt5pjGWT9E/T3K7TJ4wEZI/AAAAAAAAE_E/c1X2-N54EYo/s1600/omikuji_syoukichi.png"); ImageView logo = new ImageView(img); rootNode.getChildren().add(logo); } else if (i==4) { response.setText("\n" +message.getText()+"の今日の運勢は、" + "末吉" + "です。"); //写真 Image img = new Image("https://3.bp.blogspot.com/-JLNa8mwZRnU/T3K7StR-bEI/AAAAAAAAE-8/rQrDomz5MSw/s1600/omikuji_suekichi.png"); ImageView logo = new ImageView(img); rootNode.getChildren().add(logo); } else if (i==5) { response.setText("\n" +message.getText()+"の今日の運勢は、" + "凶" + "です。"); //写真 Image img = new Image("https://4.bp.blogspot.com/-qCfF4H7YOvE/T3K7R5ZjQVI/AAAAAAAAE-4/Hd1u2tzMG3Q/s1600/omikuji_kyou.png"); ImageView logo = new ImageView(img); rootNode.getChildren().add(logo); } } }); clear.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent ae) { message.setText(null); rootNode.getChildren().add(null); } }); // sceneにテキストフィールド、ボタン、ラベルを設置 rootNode.getChildren().addAll(message, btnSend, clear, response); myStage.show(); } }
Eclipse使用
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/09 14:49