【问题标题】:Java Swing and Event errors?Java Swing 和事件错误?
【发布时间】:2012-02-09 05:29:31
【问题描述】:

我一直在运行游戏服务器并收到此错误。我对java还不是很熟悉,所以请帮帮我。 我有几个事件管理器来处理玩家事件,比如伐木或采矿,也许事件没有正确停止,我不确定。 你能解释一下什么是awt事件队列吗?

当我们让游戏服务器运行超过一天时,就会发生这种情况。可能每 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)

【问题讨论】:

  • 如果没有引发异常的实际代码,堆栈跟踪本身并没有多大帮助。能否请您发布并指出错误发生的行?
  • 我希望我知道它是从哪里扔的...我找不到它是从哪里扔的...

标签: java multithreading swing events awt-eventqueue


【解决方案1】:

我猜你正在更新事件调度线程之外的组件状态,这可能会随机导致问题。

也许Concurrency in Swing 会有所帮助。

【讨论】:

    【解决方案2】:

    关于事件队列:当您有一个使用图形用户界面 (GUI) 的应用程序时,还有一个 与此 GUI 相关联的线程。线程运行一个循环,等待鼠标点击等事件。如果需要更改某些内容(例如,使用更多数据更新列表),该线程也是应该更新 GUI 上的控件的唯一线程

    GUI 线程从所谓的事件队列 操作更改。需要更新 GUI 的其他线程需要将其更新转发到 GUI 线程,通过该过程将它们添加到事件队列中,因为只有 GUI 线程才能实际应用它们。

    在此处了解更多信息:http://www.kauss.org/Stephan/swing/index.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多