2016-11-13 2 views
-1

이 프로그램에서 사용자는 2 단어 (firstWord 및 secondWord)를 입력해야합니다. 객체가 생성되면 두 단어가 자동으로 화면에 나타납니다.if 문 사용

firstWord는 while 루프를 통해 화면에서 위치가 변경되도록 설정됩니다.

secondWord는 고정 된 위치에 있습니다.

firstWord의 X 위치 또는 Y 위치가 secondWord와 동일하면 루프가 끝나길 원합니다.

secondWord의 XY 위치 = (155, 361)

그래서 예를 들어, 뭔가 같은 :

if (word1.xPosition = 155) { 
    break; 
} 

물론, 그 코드는 에게 당신의 아이디어를주고 그냥 잘못이다 내가 성취하고자하는 것.
이렇게 if 문을 작성하는 방법은 무엇입니까?

내 코드가 아래에 붙여

:

public words(String w1, String w2) 
{ 
    // initialise instance variables 
    firstWord = new Text(w1); 
    firstWord.randomizePosition(); 
    firstWord.changeColor("green"); 
    firstWord.changeSize(48); 
    firstWord.makeVisible(); 
    secondWord = new Text(w2); 
    secondWord.setPosition(155, 361); 
    secondWord.changeColor("orange"); 
    secondWord.changeSize(48); 
    secondWord.makeVisible(); 



public void draw() 
{ 
    while(true) { 

    firstWord.randomizePosition(); 

}  
    if(firstWord.xPosition = ){ 

    break;  

} 

} 

+0

정확히 어디서 붙어 있는지 분명하지 않습니다. –

+2

'while (true)'는 절대로 종료하지 않습니다. 앱을 실행하면 앱이 정지됩니다. –

답변

0

내가 X 위치 또는 firstWord의 Y 위치하면 종료 루프를 원하는 문 경우가 secondWord

과 동일 교체
while (!(firstWord.getXPosition() == secondWord.getXPosition() || 
      firstWord.getYPosition() == secondWord.getYPosition()) 
{ 
    firstWord.randomizePosition(); 
} 

"첫 번째 위치는 당신이 GUI에이 라벨을 그릴 것으로 예상하는 경우 등 두 번째 위치의 X 또는 Y 위치 사이의 요소를 다시 그립니다 스레드없이 움직임을 볼 것으로 예상하지 않는다, 첫 번째 위치 "


변경 움직입니다. 당신도의 X 또는 Y에 두 요소를 정렬하려면

+0

'equals()'는 * X 또는 Y가 같으면 끝내기를 원하기 때문에 여기서는 작동하지 않습니다. 그래서 그는 여전히 X와 Y를 개별적으로 비교할 필요가 있습니다. 그리고 나는 그가 물건들이 시각적으로 화면상의 위치를 ​​업데이트하고 완성 된 결과를 보여주기를 원하지 않는다고 확신합니다. 따라서 UI 스레드에서 업데이트를 수행하는 것 외에도 루프의 모든 반복에서 약간의 지연을 포함하는 백그라운드 작업에서 모든 작업을 수행해야합니다. –

0

, 당신은 당신의 while 루프를 변경해야합니다 : 귀하의 설명에 따르면

while(firstWord's X == secondWord's X || firstWord's Y == secondWord's Y) 
    firstWord.randomizePosition(); 

이 작동합니다. 물론 작은 지연을 추가하여 원하는 경우 애니메이션을 볼 수 있습니다.

+0

맞습니까? "firstWord 's"및 "secondWord 's"등에서 아포스트로피 때문에 컴파일 오류가 계속 발생합니다. 컴파일 오류 상태 : "닫히지 않은 문자 리터럴" –

+0

아, 실제 Java 서식을 사용하지 않았습니다. firstWord.positionX 또는 firstWord.getPosition.getX()와 같은 것으로 대체해야합니다. (객체의 X 또는 Y 위치를 반환하는 것은 무엇이든) – Sneling