Tengo un JTree donde los usuarios pueden soltar elementos de otros componentes. Cuando los usuarios se desplazan sobre los nodos en el árbol (durante el "modo de caída"), se resalta el nodo que está más cerca. Esto se logra en la implementación de TransferHandler.¿Hay alguna manera de detectar si una gota está por ocurrir en un JTree?
@Override
public boolean canImport(TransferSupport support) {
//Highlight the most near lying node in the tree as the user drags the
//mouse over nodes in the tree.
support.setShowDropLocation(true);
Cada vez que se selecciona un nuevo nodo (también durante el "modo de caída"), este se iniciará de un TreeSelectionEvent. Esto, a su vez, invocará un oyente que he creado que consultará una base de datos para obtener detalles relacionados con ese nodo.
Ahora, estoy buscando una manera de filtrar de alguna manera los eventos que se generan a partir de las selecciones de nodos durante el "modo de caída". Es un intento de limitar las llamadas a la base de datos. ¿Alguien tiene alguna idea sobre cómo puedo lograr esto?
¡Toda la entrada será muy apreciada!
No he intentado esto, pero ¿sería esto lo mismo que hacer Tree.getDropLocation()? He experimentado con eso, pero por alguna razón no funcionó realmente ... – sbrattla
@sbrattla, por supuesto, tienes razón y esta es una solución mucho más simple. Estaba pensando demasiado complicado ... Sin embargo, ¿por qué 'getDropLocation' no funciona en su caso? En mi opinión, hace lo que quieres. – Howard
Bueno, probablemente necesite echarle un vistazo nuevamente y ver si puedo hacer que funcione correctamente. No puedo poner mi dedo en nada (con respecto a por qué no funcionó) ... lo más probable es que sea una cuestión de sentarse y pasar el tiempo que realmente toma resolverlo. De cualquier forma, gracias por tu aporte. Al menos confirmaste que estoy en el camino correcto, ¡así que marcaré tu respuesta como correcta! – sbrattla