2011-09-06 24 views
6

Soy nuevo en Java Swing y mi pregunta está relacionada con las colas de eventos y los hilos de envío.Múltiples cadenas de envío de eventos

He leído que es posible tener múltiples colas de eventos, cada una por instancia AppContext. De forma similar, significa que cada cola de evento de AppContext tiene su propia cadena de distribución de eventos.

+2

¿Hay alguna razón usted desea varias EDTs o esto es teórico? –

+0

@Gnon Mi intención era saber cómo funciona si solo existe un hilo de envío que maneje múltiples colas de eventos. – Poorna

+1

Si pudiera proporcionar un enlace al lugar donde lee esto, sería útil. :) –

Respuesta

3

Solo puedo tener un hilo de envío de eventos, hasta donde yo sé.

Aparentemente AppContext is not meant to be used by developers, aunque no estoy muy familiarizado con él.

+1

+1 Parece que es para contenedores de applet. – trashgod

+1

Llegué a saber que cada AppContext generalmente asignado para un grupo de hilos separado tiene su propia cola, que indirectamente dice que tiene su propio EDT – Poorna

+0

Supongo que tener dos AppContexts ejecutándose en la misma JVM le daría dos EDT, aunque son para la mayoría fines programas completamente separados. –

1

1) básicamente sólo se necesita saber si su código se hará sobre EDT (todos los cambios deben hacerse en EDT),

2) si tiene cualquier duda, es posible probar

if (EventQueue.isDispatchThread()) { 

o (que es igual y devuelve verdadero si está en EDT)

if (SwingUtilities.isEventDispatchThread()) { 

más here o here

3) toda la salida de las tareas de fondo debe ser envuelto en invokeLater(), cosas básicas sobre Concurency in Swing

Cuestiones relacionadas