質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

0回答

573閲覧

JavaFX - インプットをもとに表示した図形の色を変更したい

退会済みユーザー

退会済みユーザー

総合スコア0

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2021/05/22 02:36

編集2022/01/12 10:55

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/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shiketa

2021/05/22 08:24

たとえば。 GUIを提供するアプリケーションであるExcelを使うとき、セルの値をコンソールから入力しますか? わたしの狭い常識では、それはありえません。 たとえば、Canvasの近くにButton https://docs.oracle.com/javase/jp/8/javafx/api/javafx/scene/control/Button.html をレイアウトし、Buttonがクリックされたら、TextInputDialog https://docs.oracle.com/javase/jp/8/javafx/api/javafx/scene/control/TextInputDialog.html を表示して値を入力させ、「Triangleと入力したら、三角形を表示」させます。 もしくは、ButtonとTextField https://docs.oracle.com/javase/jp/8/javafx/api/javafx/scene/control/TextField.html をレイアウトし、TextFieldに「Triangleと入力し」てButtonをクリックされたら「三角形を表示」します。 もしわたしがつくるならという案です。参考まで。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問