2011-12-20 3 views
0

나는 자바에서 15 퍼즐 게임을 만들고있다. 나는 이미 게임 패널을 만들고 필드에 빈 자리 (JButton이 아닌)의 위치를 ​​찾고 필드가 우승 한 combitanion인지 여부를 제어하는 ​​메서드 (올바른 위치의 JButtons)를 작성했습니다. 내가하는 ActionListener를 작성과 함께 문제가자바에서 15 퍼즐 게임

enter image description here

: 그래서, 나는 이런 식으로 뭔가를 얻었다. ActionListener를 빈 공간을 둘러싸는 JButton에 추가 할 필요가있는 것을 결정하는 메소드를 기술 할 수 있을지 어떨지를 나타냅니다.

정말 팁이 필요하거나 어쩌면 이미 작성된 방법/솔루션이 필요합니다.

감사합니다.

+2

"어쩌면 이미 작성된 방법/솔루션"을 읽을 때까지 이것이 좋은 질문이라고 생각했습니다. 앞으로 이것을 생략하면 더 나은 도움/아이디어를 얻게 될 것입니다. –

+0

* "그래서, 다음과 같은 것을 얻었습니다."* 그림은 수천 개의 단어를 칠하지만, [SSCCE] (http://sscce.org/)는 매우 구체적인 그림을 그립니다. –

+0

@ 앤드류 만약 내가 필요하지 않은 SSCCE를 묻는 모든 코멘트에 1 달러가 있다면 나는 은퇴 할 수있다. :-) 그들은 몇몇 상황에서 유용하지만,이 경우 OP는 자신의 문제를 완벽하게 설명 할 수 있습니다. – corsiKa

답변

8

모든 단추에 대해 동작 수신기를 활성화하는 것이 가장 좋습니다. 클릭하면 빈 상자 옆에 있지 않다고 판단되면 아무것도 수행하지 않습니다.

+2

또는 전체 행/열 이동을 고려하십시오. 위의 14 번을 클릭하면 빈 공간이되고 1, 13 및 14 모두 왼쪽 1 위치로 이동합니다. – xQbert

6

빈 공간을 둘러싸고있는 버튼에만 actionListeners를 추가하는 것이 좋습니다. 모든 버튼에 actionListener를 추가하고 유효하면 클릭 만 처리하십시오.

또한 내 경험상 빈 공간을 둘러싸고있는 타일 중 하나를 클릭 만 허용하는 것은 매우 사용자 친화적입니다. 예제 그림에서 7, 1 및 11에 대해서만 클릭을 허용 할 계획입니다. 5, 7, 1, 13, 14 및 11을 클릭 할 수 있어야합니다. 예를 들어, 14를 클릭하면 1을 , 13 및 14 왼쪽에 있습니다.