私は異なる状態でオブジェクトを描画するプログラムを書いています。最初は灰色の長方形、2番目は画像、3番目は明るい四角形で、テキストが入っています。私は3つのクラスとしてコードを書いた。私はコンポーネントクラスに問題があります。それは何らかの理由でループし続けます。私は1を入力すると、それは正常に動作します。私が2を入力すると、画像を表示する前に自分の入力を4回尋ねます。私が3を入力すると、それはより明るい四角形を示す前に二度聞いてきますが、テキストはありません。私のコードはループしているようですが、なぜ私はわかりません
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.util.Scanner;
import javax.swing.JComponent;
public class ImageComponent extends JComponent {
/**
*
*/
private static final long serialVersionUID = 1L;
public int status;
public int getInput(){
Scanner userinput = new Scanner(System.in);
System.out.println("Select the state <1-rectangle, 2-image, 3-rectangle with text>");
int state=userinput.nextInt();
//userinput.close();
return state;
}
public void paintComponent(Graphics g){
Graphics2D g2 =(Graphics2D) g;
if (getInput() ==1){
ImageMaker rectangle = new ImageMaker(0,0,500,400);
g2.setColor(Color.GRAY);
rectangle.draw(g2);
}
else if (getInput() ==2){
Image img1 = Toolkit.getDefaultToolkit().getImage("balloon.gif");
ImageMaker image = new ImageMaker(img1, 0, 0, this);
image.draw(g2);
}
else{
ImageMaker rectangle = new ImageMaker(0,0,500,400);
g2.setColor(Color.LIGHT_GRAY);
rectangle.draw(g2);
g2.drawString("Your Text Here", 500/2, 400/2);
}
}
}
ようになっているはず? –