2012-02-08 4 views
0

게임 서버를 실행하고 있는데이 오류가 발생합니다. 나는 정말로 java에 익숙하지 않았으므로 나를 도와주세요. 나는 woodcutting이나 마이닝과 같은 플레이어 이벤트를 처리 할 몇 개의 이벤트 관리자가 있으며 이벤트가 올바르게 중지되지 않을 수도 있습니다. 확실하지 않습니다. awt 이벤트 큐가 무엇인지 설명 할 수 있습니까?자바 스윙 및 이벤트 오류?

게임 서버를 1 일 이상 실행하면 이런 일이 발생합니다. 아마도 12 시간마다 발생합니다. 이벤트 큐에 관한

[2/8/12 11:00 AM]: Exception in thread "AWT-EventQueue-0" [2/8/12 11:00 AM]: jav 
a.lang.ArrayIndexOutOfBoundsException: 14 >= 14 
[2/8/12 11:00 AM]:  at java.util.Vector.elementAt(Unknown Source) 
[2/8/12 11:00 AM]:  at javax.swing.DefaultListModel.getElementAt(Unknown Sou 
rce) 
[2/8/12 11:00 AM]:  at javax.swing.plaf.basic.BasicListUI.paintCell(Unknown 
Source) 
[2/8/12 11:00 AM]:  at javax.swing.plaf.basic.BasicListUI.paintImpl(Unknown 
Source) 
[2/8/12 11:00 AM]:  at javax.swing.plaf.basic.BasicListUI.paint(Unknown Sour 
ce) 
[2/8/12 11:00 AM]: at javax 
.swing.plaf.ComponentUI.update(Unknown Source) 

[2/8/12 11:00 AM]:  at javax.swing.JComponent.paintComponent(Unknown Source) 
[2/8/12 11:00 AM]:  at javax.swing.JComponent.paint(Unknown Source) 
[2/8/12 11:00 AM]:  at javax.swing.JComponent.paintChildren(Unknown Source) 
[2/8/12 11:00 AM]:  at javax.swing.JComponent.paint(Unknown Source) 
[2/8/12 11:00 AM]:  at javax.swing.JViewport.paint(Unknown Source) 
[2/8/12 11:00 AM]:  at javax.swing.JComponent.paintChildren(Unknown Source) 
[2/8/12 11:00 AM]:  at javax.swing.JComponent.paint(Unknown Source) 
[2/8/12 11:00 AM]:  at javax.swing.JComponent.paintToOffscreen(Unknown Sourc 
e) 
[2/8/12 11:00 AM]:  at javax.swing.BufferStrategyPaintManager.paint(Unknown 
Source) 
[2/8/12 11:00 AM]:  at javax.swing.RepaintManager.paint(Unknown Source) 
[2/8/12 11:00 AM]:  at javax.swing.JComponent._paintImmediately(Unknown Sour 
ce) 
[2/8/12 11:00 AM]:  at javax.swing.JComponent.paintImmediately(Unknown Sourc 
e) 
[2/8/12 11:00 AM]:  at javax.swing.RepaintManager.paintDirtyRegions(Unknown 
Source) 
[2/8/12 11:00 AM]:  at javax.swing.RepaintManager.paintDirtyRegions(Unknown 
Source) 
[2/8/12 11:00 AM]:  at javax 
.swing.RepaintManager.prePaintDirtyRegions(Unknown Source) 

[2/8/12 11:00 AM]:  at javax.swing.RepaintManager.access$700(Unknown Source) 

[2/8/12 11:00 AM]:  at javax.swing.RepaintManager$ProcessingRunnable.run(Unk 
nown Source) 
[2/8/12 11:00 AM]:  at java.awt.event.InvocationEvent.dispatch(Unknown Sourc 
e)[2/8/12 11:00 AM]: Npc deleted 

[2/8/12 11:00 AM]:  at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
[2/8/12 11:00 AM]: Npc deleted 

[2/8/12 11:00 AM]:  at java.awt.EventQueue.access$000(Unknown Source)[2/8/12 
11:00 AM]: Npc deleted 

[2/8/12 11:00 AM]:  at java.awt.EventQueue$3.run(Unknown Source)[2/8/12 11:0 
0 AM]: Npc deleted 

[2/8/12 11:00 AM]:  at java.awt.EventQueue$3.run(Unknown Source) 
[2/8/12 11:00 AM]: Npc deleted[2/8/12 11:00 AM]:  at java.security.AccessC 
ontroller.doPrivileged(Native Method) 

[2/8/12 11:00 AM]:  at java.security.ProtectionDomain$1.doIntersectionPrivil 
ege(Unknown Source) 
[2/8/12 11:00 AM]: 
at java.awt.EventQueue.dispatchEvent(Unknown Source) 

[2/8/12 11:00 AM]:  at java.awt.EventDispatchThread.pumpOneEventForFilters(U 
nknown Source) 
[2/8/12 11:00 AM]:  at java.awt.EventDispatchThread.pumpEventsForFilter(Unkn 
own Source) 
[2/8/12 11:00 AM]:  at java.awt.EventDispatchThread.pumpEventsForHierarchy(U 
nknown Source) 
[2/8/12 11:00 AM]:  at java.awt.EventDispatchThread.pumpEvents(Unknown Sourc 
e) 
[2/8/12 11:00 AM]:  at java.awt.EventDispatchThread.pumpEvents(Unknown Sourc 
e) 
[2/8/12 11:00 AM]:  at java.awt.EventDispatchThread.run(Unknown Source) 
+0

stacktrace 자체는 예외가 발생하는 실제 코드가 없으면 큰 도움이되지 않습니다. 그것을 게시하고 오류가 발생한 행을 표시 할 수 있습니까? – Tudor

+0

나는 어디에서 던져지고 있는지 알았 으면 좋겠어. 나는 던져진 곳을 찾을 수 없다. – Aleksandr

답변

1

: 그래픽 사용자 인터페이스 (GUI)를 사용하는 응용 프로그램이있을 때,이 GUI와 관련된 실도 있습니다. 스레드는 마우스 클릭과 같은 이벤트를 기다리는 루프를 실행합니다. 이 스레드는 이며, 뭔가를 변경해야 할 경우 (예 : 목록이 더 많은 데이터로 업데이트되는 경우) GUI의 컨트롤을 업데이트하기로되어있는 유일한 스레드입니다.

GUI 스레드는 변경된 내용을 이벤트 큐에서 처리합니다. GUI를 업데이트해야하는 다른 스레드는 업데이트를 GUI 스레드 인에 전달해야합니다 (GUI 스레드 만 실제로이를 적용 할 수 있기 때문에 업데이트를 이벤트 대기열에 추가하는 프로세스).

여기에 대해 좀 더 읽기 : http://www.kauss.org/Stephan/swing/index.html

2

난 당신이 무작위로 문제를 일으킬 수있는 이벤트 발송 쓰레드의 외부 구성 요소의 상태를 업데이트하는 추측하고있어.

Concurrency in Swing이 도움이 될 수 있습니다.