0

我正在尝试创建一个程序,通过用户输入显示形状并将它们输出到窗口。我有一个单独的类,它定义了形状和图形窗口,但是我不知道如何获取用户对形状的输入。一般来说,我是 Java 和 OOP 的新手。到目前为止,这是我的代码:

import java.util.Scanner;

public class Input {
    public static void main(String [] args) {
        GraphicsScreen g = new GraphicsScreen();
        Scanner s = new Scanner(System.in);
        int val1 = 0;
        int val2 = 0;
        String line; 
        String [] sut;
        System.out.println("Please enter your commands here. Type 'end' to quit.");
        line = s.nextLine();

        while ( line.equalsIgnoreCase("end"));

        sut = line.split(", ");
        line = sut [0];
        if (sut.length > 1) {
            val1 = Integer.parseInt(sut[1]);
            if (sut.length > 2) {
                val2 = Integer.parseInt(sut[2]);
            }
        }
        if (line.equals("moveTo" + val1 + val2)) {
            g.moveTo(val1, val2);
        }
        else if (line.equals("lineTo" + val1 + val2)) {
            g.lineTo(val1, val2);
        }
        else if (line.equals("circle" + val1)) {
            g.circle(val1);
        }
        else {
            System.out.println("The commands you have entered are invalid. Please try again.");
        }   
    }
}

基本上,在顶部定义的 int 必须设置为一个值,否则 Eclipse 返回一个编译器错误,所以我将它们设置为零。在最后一个 IF 语句中,我尝试连接最后的值,但这显然会导致形状为零值。

我将如何改变它以便用户定义val1并将val2结果输出到窗口?

4

1 回答 1

2
if (line.equals("moveTo" + val1 + val2)) {
    g.moveTo(val1, val2);
}

这不应该只是

if (line.equals("moveTo")) {
    g.moveTo(val1, val2);
}

你已经用逗号打破了排队。

于 2012-11-02T00:04:38.947 回答