Java 从字符串获取输入以模拟鼠标单击

Java 从字符串获取输入以模拟鼠标单击,java,Java,所以我有一个Java程序,它将屏幕从a1->h8拆分成8x8网格。该程序将采用2个字母的输入,例如,如果我键入a1,则鼠标应单击a1的位置。我有两个问题 1) 我在想,我真的必须这样做吗: 如果(输入=a1) //单击a1的位置 64次?还是有更好的办法 2) 我应该使用什么来实际执行鼠标单击?有没有一种方法可以在不移动鼠标的情况下单击某个位置?使用awt.Robot类模拟单击。回答问题1 您可以使用ArrayList,它将存储从a1到h8的所有值 然后,您可以编写一个if条件进行检查 Arra

所以我有一个Java程序,它将屏幕从a1->h8拆分成8x8网格。该程序将采用2个字母的输入,例如,如果我键入a1,则鼠标应单击a1的位置。我有两个问题

1) 我在想,我真的必须这样做吗:

如果(输入=a1) //单击a1的位置

64次?还是有更好的办法


2) 我应该使用什么来实际执行鼠标单击?有没有一种方法可以在不移动鼠标的情况下单击某个位置?

使用
awt.Robot
类模拟单击。

回答问题1

您可以使用
ArrayList
,它将存储从
a1到h8的所有值

然后,您可以编写一个if条件进行检查

ArrayList<String> list = new ArrayList<String>();
list.add("a1");
list.add("a2");
list.add("a3");
list.add("a4");
String input ="a1";     
if(list.contains(input))
    //click location of a1
else
    //else part
首先:

The program is to take a 2 letter input,
你的程序需要一个字母和一个数字,而不是两个字母,你需要注意如何表达这样的内容,因为这可能会影响人们如何处理解决方案,不过这没有什么大不了的 :)

其次:不知道这是否是最好的方法,但您可能会创建一个网格方格名称的ArrayList(a1、a2、a3 e.t.c),然后当您收到用户的输入时,在列表上迭代,直到输入与ArrayList中的条目匹配,一旦找到,使用robot创建单击,或者手动向侦听器触发OnClick事件。如果在列表中找不到与用户输入匹配的条目,则返回引用无效引用的错误

此外,为了避免每次手动输入一个数组的每个网格引用,请尝试使用char ASCII值并循环创建列表,如下所示:

    char c = 97;
    char n = 49;
    String s = Character.toString(c) + Character.toString(n);
    System.out.println(s);

    myArrray.add(s);

通过以正确的方式成功循环上述内容,您将保存逐个添加每个网格引用。

记录当前鼠标位置,使用
Robot
移动并单击鼠标,将鼠标返回到开始位置?我没有得到您的第一点。我的意思是,我实际上必须为每个网格位置编写一条if语句吗?还是有更好的办法?我是初学者
    char c = 97;
    char n = 49;
    String s = Character.toString(c) + Character.toString(n);
    System.out.println(s);

    myArrray.add(s);