대학 교과 과정에서 Java에서 행맨 게임을 만들고 있는데 내 코드 문제. 내가 실행하는 데있어 개방하지만 추측을 만들기 위해 텍스트 상자에 문자를 입력 할 때, 나는이 오류 얻을했습니다"AWT-EventQueue-0"스레드의 예외 java.lang.ArrayIndexOutOfBoundsException : 0 행맨 게임에서 문자열 배열과 문자열을 비교하려고 할 때
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0
at hangman.HangmanFrame.guessButtonActionPerformed(HangmanFrame.java:164)
at hangman.HangmanFrame.access$000(HangmanFrame.java:14)
at hangman.HangmanFrame$1.actionPerformed(HangmanFrame.java:75)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6290)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6055)
at java.awt.Container.processEvent(Container.java:2039)
at java.awt.Component.dispatchEventImpl(Component.java:4653)
at java.awt.Container.dispatchEventImpl(Container.java:2097)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4236)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166)
at java.awt.Container.dispatchEventImpl(Container.java:2083)
at java.awt.Window.dispatchEventImpl(Window.java:2482)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:648)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:607)
at java.awt.EventQueue$1.run(EventQueue.java:605)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:621)
at java.awt.EventQueue$2.run(EventQueue.java:619)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:618)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
목록의 첫 번째 오류에 기반을, 나는 뭔가가 의심 이 문자를 문자열 배열 작업과 비교 내 처음으로이 문제입니다 제가 단서가없는
if (playerGuess.equals(arrayToGuess[c]))
: 구체적
do
{
if (playerGuess.equals(arrayToGuess[c]))
{
correct = true;
lettersToGet[c] = playerGuess;
}
c++;
}
while (c < 6);
c = 0;
:이 부분의 코드와 함께 할 각 p에 사용자가 입력 한 배열 아트. 누군가가 도울 수 있기를 바랍니다. 더 자세한 정보가 필요하면 알려주십시오. 가능한 한 빨리 연락 드리겠습니다. 또한 전체 코드가 문제가 안보에 도움이 볼 수 있도록 단기 페이스트 빈을 만들었습니다 Pastebin Link
감사를
여기서'arrayToGuess'를 선언하고 할당하고 있습니까? – Tudor
'public class HangmanFrame extends JFrame'에서 선언하고 배열의 각 요소에 글자를 넣는'newGame();'메소드에 할당하고 있습니다. –
'ArrayIndexOutOfBoundsException'는 배열의 잘못된 색인에 접근하려고 함을 의미합니다. 이것은'c <0 '이거나'c> = arrayToGuess.length' 일 때 발생합니다. 배열을 만들 코드를 게시하십시오. – Jeffrey