Tengo un problema muy específico, y quería saber si hay una forma de cambiar el propietario de un JDialog (se puede establecer usando el constructor). Supongo que no hay posibilidad "oficial" (que no sea un truco), pero quería asegurarme de no perderme nada. Cualquier idea o sugerencia sobre el tema sería útil, gracias ya ...¿Hay alguna manera de cambiar el propietario de un JDialog?
Respuesta
Si su pregunta es acerca de la forma de reutilizar los cuadros de diálogo durante su ciclo de vida de aplicaciones, a continuación, una forma mejor es:
- definir todos sus contenidos de diálogo como JPanel subclases
- e instanciar un nuevo JDialog con la instancia de la subclase de JPanel existente
Para el punto 2, se puede, por supuesto, utilizar la evaluación perezosa de los paneles (instanciar a primera usar solo, luego reutilizar).
También necesitará que sus paneles implementen alguna interfaz (propia) que le permita reinicializarlos para su reutilización en un nuevo JDialog (reiniciar normalmente significa borrar todos los campos del contenido, o configurar estos campos nuevamente en su valores predeterminados).
Lo único que se me ocurre es un hack inseguro (use la reflexión y modifique el propietario, pero eso podría cambiar bajo diferentes versiones de la JVM (incluso del mismo vensor en la misma plataforma)).
Quizás una pregunta mejor para que usted pregunte es "esto es lo que estoy tratando de hacer ... ¿realmente necesito cambiar el dueño del diálogo o hay una manera mejor"? Estoy tratando de pensar en razones para querer cambiar el propietario y no puedo llegar a cualquier ...
j:
he tenido una necesidad similar de un único cuadro de diálogo "global" en mi solicitud para servir a un diálogo "notas" cuando el texto en una celda de la tabla es demasiado largo para mostrar. En este caso, el usuario puede desplazarse o hacer clic con el botón derecho en la celda y obtener un cuadro de diálogo que muestra todo el texto. Sin embargo, quería que el cuadro de diálogo se mostrara rápidamente, especialmente cuando se movía, así que simplemente quería mostrarlo y ocultarlo. Decidí crear y almacenar este diálogo en la clase principal con el marco de la aplicación como propietario. Luego, cada vez que una vista cuyo propietario era el marco necesitaba el diálogo de notas, la vista podía obtenerlo de la clase principal. En aquellos casos en los que un diálogo necesitaba el diálogo de notas, el cuadro de diálogo padre podía crear una nueva instancia del diálogo de notas con el propietario apropiado. Dado que estos cuadros de diálogo principales (al menos en mi aplicación) se eliminan cuando se cierran, la instancia del cuadro de diálogo de notas extra estará fuera del alcance y de la basura recolectada. Espero que ayude.
- 1. ¿Hay alguna manera de encontrar el hilo del propietario de un control?
- 2. ¿Hay alguna manera de cambiar el modo predeterminado de vim?
- 3. Cómo crear un JDialog modal encima de otro modal JDialog
- 4. Cambiar el propietario de un proceso existente en Linux
- 5. ¿Hay alguna manera de cambiar el nombre de un esquema de Xcode 4?
- 6. Cómo cambiar el propietario de una rsync
- 7. ¿Hay alguna manera de negar un predicado?
- 8. ¿Hay alguna manera de omitir el parámetro?
- 9. ¿Hay alguna manera de cambiar el color de fuente de Jradiobuttons usando el UImanager
- 10. ¿Hay alguna manera de "anular" un método con la reflexión?
- 11. Cambiar el propietario del archivo en Windows
- 12. ¿Hay alguna manera de cambiar el comportamiento de HttpWebRequest en los códigos de estado 400/500?
- 13. ¿Hay alguna manera de que pueda cambiar el orden de carga de Apache VirtualHosts primero?
- 14. ¿Hay alguna manera de cambiar el nombre de claves de objeto usando js underscore.js
- 15. ¿Hay alguna manera de cambiar el directorio usando el lenguaje C?
- 16. ¿Hay alguna manera de anular ConfigurationManager.AppSettings?
- 17. ¿Hay alguna manera de llamar a Navigate desde el ViewModel?
- 18. ¿Hay alguna manera de cambiar el delimitador después de linenumber in vim?
- 19. ¿Hay alguna manera de cambiar el orden de los constructores enumerados en IntelliSense en Visual Studio?
- 20. ¿Hay alguna manera de cambiar el orden de dibujo en WPF
- 21. ¿Hay alguna manera de cambiar el contexto a iframe en la consola de JavaScript?
- 22. ¿Hay alguna manera de cambiar el contexto entre Prueba de unidad y Versión. en C#
- 23. ¿Hay alguna alternativa a cambiar en un método de fábrica?
- 24. ¿Hay alguna manera de cambiar el tamaño de la fuente del título en una hoja UIActionSheet?
- 25. ¿Hay alguna manera de inicializar un objeto mediante un hash?
- 26. ¿Hay alguna manera de encontrar un elemento en un documentFragment?
- 27. ¿Hay alguna manera de que Apache log logre slow requests?
- 28. ¿Hay alguna manera fácil de cambiar un carácter en una cadena en C#?
- 29. ¿Hay alguna manera de desactivar una etiqueta?
- 30. ¿Hay alguna manera de abatir un AutoBean de GWT?
¿Por qué demonios querrías hacer eso? – Bombe