2014-01-23 6 views
1

Java Robot 기능으로 약간의 놀음이 있습니다.Java 로봇 기능 추상화

그러나 나는 그것이 내가 함수를 추상화하고 더 빠른 길을 만들 수 있는지 궁금해하고 있었다.

지금 첫째로 나는 다음과 같은 짓을 : 나는 현재 조금 당황입니다

public abstract class Cyborg { 

    public static void Cyborg(KeyEvent args[]) throws AWTException{ 
     try { 
      Robot robot = new Robot(); 
      for(KeyEvent k:args){ 
       robot.keyPress(KeyEvent.k); 
      } 
     } catch(AWTException e){ 
      e.printStackTrace(); 
     } 
    } 
} 

나는 현재 k는 해결 될 수없는 오류를 얻고있다와. 그러나 KeyEvent args[] 섹션에서 KeyEvent로 분류해야합니까? 아니면 그냥 문자열이어야하나요? 내가 PHP 배경에서 나는 자바와 그립에 도착하기 시작입니다. 이 문제를 해결하는 가장 좋은 방법이 있다면 누구나 조언 할 수 있습니까? 또한 KeyEvent.kKeyEvent인지 여부 또는 String인지 여부가 확인되지 않는 이유는 무엇입니까? 이 방법이 효과가 있는지/작동하지 않겠다고 다른 조언을하거나 문제를 피하고 피하는 것이 좋습니다. 이것이의 staticmember을 찾기 위해 시도합니다 때문에

답변

0
robot.keyPress(KeyEvent.k); 

이 작동하지 않습니다처럼해야이 줄 주셔서 감사합니다 KeyEventk입니다. 증분 오브젝트 k의 이름을 지정 했으므로 k을 사용하십시오.

robot.keyPress(k.getKeyCode()); 

더 철저한 설명

다음 말할 때 :

컴퓨터를 만들고있어 무엇
String[] strs = {"hello", "there", "my", "friend"}; 

for(String str : strs) 
{ 
    // Do something. 
} 

할이 같은 효과로 :

for(int x = 0; x < strs.length; x++) 
{ 
    String str = strs[x]; 
} 

따라서라는 String 개체를 정의하고 있습니다. 현재 String 개체 (strs 배열에 포함되어 있음)가 포함될.

+0

예.하지만 k로 설정하는 것은 실제 키 값이 아닌 키의 정수 변형입니다. –

+0

아니요, 'k' 'KeyEvent' 객체입니다. - 사과. 더 명확하게 편집되었습니다. – christopher

+0

"형식 로봇의 keyPress 메서드는 인수 (KeyEvent)에 적용 할 수 없습니다."라고 나와 있습니다. –

0

robot.keyPress(KeyEvent.k); 

robot.keyPress(k.getKeyCode()); 
+0

그렇습니다.하지만 k로 설정하는 것은 실제 키 값이 아닌 키의 정수 변형입니다. –