JavaFXを用い、表示されている図形の色を変更したいです。
プログラムの概要としては、
1.ユーザーから表示したい図形の名前のインプットをコンソールから受ける
2.該当する図形であれば表示(子供が、Triangleと入力したら、三角形を表示したいと考えています)
3.既に表示されている図形の色の変更をおこなうため、表示したい色の名前のインプットをコンソールから受ける(既存の色から、他の色に変更したいと考えています)
4.表示されている図形の色の変更
です。
上記の1と2の部分まではコードを書けたのですが、3、4について、
さらにif文を追加するなどしてもうまく動きません。
該当のソースコード
Java
1import java.util.Scanner; 2import javafx.application.Application; 3import javafx.scene.Group; 4import javafx.scene.Scene; 5import javafx.scene.canvas.Canvas; 6import javafx.scene.canvas.GraphicsContext; 7import javafx.scene.paint.Color; 8import javafx.scene.shape.ArcType; 9import javafx.stage.Stage; 10 11 public class TestApp extends Application { 12 13 public static void main(final String... args) { 14 launch(args); 15 } 16 17 GraphicsContext gc; 18 19 @Override 20 public void start(final Stage stage) { 21 Group root = new Group(); 22 23 //create canvas 24 Canvas cvs = new Canvas(400, 300); 25 root.getChildren().add(cvs); 26 27 this.gc = cvs.getGraphicsContext2D(); 28 Scene scene = new Scene(root, 400, 300, Color.WHITE); 29 stage.setScene(scene); 30 //show window 31 stage.show(); 32 33 //Execution 34 Scanner userInput = new Scanner (System.in); 35 String shapeUser; 36 37 //enter your shape 38 System.out.print("Enter your favorite shape"); 39 shapeUser = userInput.next(); 40 41 while (true) 42 { 43 44 //String input = userInput.next(); 45 if(shapeUser.equalsIgnoreCase("rectangle")) 46 { 47 System.out.println("Your request is received... A Circle should pop up."); 48 drawRectangle(); 49 } 50 51 else 52 System.out.println("Sorry, your input is invalid. Please re run this program."); 53 54 break; 55 } 56 57 } 58 59 60 private void drawRectangle() { 61 62 gc.setFill(Color.RED); 63 gc.fillRect(50, 150, 150, 100); 64 } 65 66 }
試したこと
色変更のためのクラスを作成し、メインクラスのif構文内に追加してみましたが、動きませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー