通过Java中的用户输入显示形状

时间:2012-11-01 23:56:38

标签: java

我正在尝试创建一个程序,通过用户输入显示形状并将它们输出到窗口。我有一个单独的类来定义形状和图形窗口但是我无法弄清楚如何获取形状的用户输入。我是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会返回一个compliler错误,所以我将它们设置为零。在最后一个IF语句中,我尝试连接结尾的值,但这显然会导致形状为零值。

我如何更改此内容,以便用户定义val1val2并将结果输出到窗口?

1 个答案:

答案 0 :(得分:2)

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

不应该只是

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

你已经用逗号分隔了这一行。