私は学校のプロジェクトに取り組んでおり、アプリのユーザーが編集できる Java で人の顔を作成する必要があります。それぞれの顔の特徴にはいくつかのオプションがあるはずなので、最初に試したのは目です。しかし、eyeComponent クラスでユーザーと対話しようとすると問題が発生します。
JVM でユーザーのカラー オプション (1 ~ 4) を出力し、空白の JFrame ウィンドウを開きますが、JVM ではユーザーの応答を許可しません。色のオプションを出力した後、プログラムは終了するだけで、ユーザーが応答できない理由がわかりません。以下に、EyeComponent クラスと PersonViewer クラスの両方のコードを投稿しました。
EyeComponent
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import javax.swing.JComponent;
import java.util.Scanner;
public class EyeComponent extends JComponent
{
public void paintComponent(Graphics g)
{
Scanner in = new Scanner(System.in);
Graphics2D g2 = (Graphics2D) g;
Ellipse2D.Double head = new Ellipse2D.Double(5,20,100,150);
System.out.println("What color would you like the eyes to be?");
System.out.println("Select \n1:blue \n2:red \n3:yellow \n4:green");
int response = in.nextInt();
if (response == 1)
{ g2.setColor(Color.BLUE);}
else if (response == 2)
{ g2.setColor(Color.RED);}
else if (response == 3)
{ g2.setColor(Color.YELLOW);}
else if (response == 4)
{ g2.setColor(Color.GREEN);}
g2.draw(head);
}
}
PersonViewer
import javax.swing.*;
import java.util.Scanner;
public class personViewer //creates class called engine of scope public
{
public static void main (String [] args) //main method for engine class
{
JFrame frame = new JFrame();
frame.setSize(150, 250);
frame.setTitle("Face");
EyeComponent component = new EyeComponent();
frame.add(component);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}