Tengo un problema actualmente para mi aplicación de recordatorio de swing, que puede minimizar a la bandeja al cerrar. Mi problema aquí es que necesito el cuadro de diálogo JOptionPane para que aparezca a tiempo de acuerdo con lo que establecí, pero el problema aquí es que, cuando lo minimizo, aparecerá el diálogo, pero no en la parte superior de las ventanas cuando otra aplicación como explorer, firefox se está ejecutando, ¿alguien sabe cómo abrir el cuadro de diálogo en la parte superior de las ventanas sin importar qué aplicación se esté ejecutando?JOptionPane no mostrará su cuadro de diálogo en la parte superior de otras ventanas
Respuesta
Windows bloquea esta operación desde XP.
El escenario anterior era como: Su una sugerencia en un texto en un editor y no reconoce que otro diálogo está llegando al frente cuando está inclinando el texto. El próximo diálogo obtiene el foco y usted está inclinando el nuevo diálogo. Tal vez hace clic en entrar después de que esté listo y hace esto en el diálogo mal, que se le pregunta si realmente quiere delet su disco duro;)
La venido a llamar delante en Java sólo se está trabajando para las ventanas de Java.
La posibilidad de notificar al usuario de una nueva ventana es implementar un Marco, que se resaltará/parpadeará en la barra de tareas de Windows.
Puede pensar en utilizar un JFrame en su lugar. Puede darte un poco más de flexibilidad.
Si está utilizando un JFrame y quiere que en Emergente en la parte superior de las otras ventanas usar:
myFrame.setVisible(true);
myFrame.setState(Frame.NORMAL);
El setstate mostrará la ventana para el usuario si estaba en estado minimizado previamente.
¿Está utilizando uno de los JOptionPanes enlatados? (Como JOptionPane.showCOnfirmDialog (...))
Es posible que desee consultar la extensión de JDialog y crear su propio panel de diálogo, y luego llamar a myDialog.setAlwaysOnTop (true);
Corrección del post anterior ..
tengo resolver mi problema de la siguiente manera:
this.setVisible(true); // show main frame
MyDialog dialog = New MyDialog(this, true); // show my custom dialog
dialog.setVisible(true);
this.setVisible(false);
funciona bien para mí :)
Crear un JFrame, respectivamente maniquí vacío, ajustado siempre en la parte superior y utilícelo como componente para JOptionPane en lugar de nulo. Entonces JOptionPane permanece siempre en la parte superior de todas las demás ventanas de una aplicación. También puede determinar dónde aparece JOptionPane en la pantalla con la ubicación del JFrame ficticio.
JFrame frmOpt; //dummy JFrame
private void question() {
if (frmOpt == null) {
frmOpt = new JFrame();
}
frmOpt.setVisible(true);
frmOpt.setLocation(100, 100);
frmOpt.setAlwaysOnTop(true);
String[] options = {"delete", "hide", "break"};
int response = JOptionPane.showOptionDialog(frmOpt, msg, title, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, "delete");
if (response == JOptionPane.YES_OPTION) {
removeRow();
}
frmOpt.dispose();
}
Publicación anterior, pero estaba luchando con esto.
Mi problema fue más con Javafx que permite que JOptionPane vaya detrás de la ventana de Java actual.
Por lo tanto, utilicé lo siguiente que hace lo que el cartel original pedía poniendo el JOptionPane delante de todas las ventanas; incluso JAVAFX.
primer lugar, la edad JOptionPane:
JOptionPane.showMessageDialog(null, "Here I am");
Ahora un JOptionPane que se mantiene delante:
final JDialog dialog = new JDialog();
dialog.setAlwaysOnTop(true);
JOptionPane.showMessageDialog(dialog, "Here I am");
Y para la diversión aquí es todo en una sola línea:
JOptionPane.showMessageDialog(
((Supplier<JDialog>)() -> {final JDialog dialog = new JDialog(); dialog.setAlwaysOnTop(true); return dialog;}).get()
, "Here I am");
Usted puede hacer un método estático en algún lugar que devuelva el JDialog por usted y luego simplemente llamarlo en JOptionPan e para limpiar tu código un poco.
- 1. JOptionPane - cuadro de diálogo de entrada programa
- 2. cómo mostrar JOptionPane en la parte superior de todas las ventanas
- 3. Clonar los botones de diálogo jqueryui en la parte superior del cuadro de diálogo
- 4. JOptionPane SÍ/No Opciones Confirmar cuadro de diálogo Problema
- 5. Crear un cuadro de mensaje de vbscript que permanezca en la parte superior y bloquear otras ventanas
- 6. Mantener diálogos en la parte superior de la ventana, pero no en la parte superior de todo
- 7. ¿Cómo implementar correctamente un diálogo modal en la parte superior de un diálogo no modal?
- 8. Java Swing: cuadro de diálogo de posicionamiento en la parte superior de la ventana existente
- 9. Fundir todas las otras ventanas de una aplicación cuando se muestra un cuadro de diálogo?
- 10. Cómo obtener el diálogo jQueryui scrollTop para desplazar el contenido del diálogo a la parte superior
- 11. UIWindow no visible en la parte superior de Storyboard
- 12. Mantener la ventana en la parte superior al cambiar espacios
- 13. Eclipse IDE: ¿es posible tener ventanas separadas que no siempre estén en la parte superior?
- 14. ScrollView no muestra la parte superior
- 15. Hacer FancyBox aparece en la parte superior
- 16. Etiquetas verticales de xtick en la parte superior, no en la parte inferior
- 17. Cuadro de información de estilo iTunes o Xcode en la parte superior de la ventana
- 18. Enfrente de "siempre en la parte superior"
- 19. Dibujo en la parte superior de una imagen en Javascript
- 20. Capas WebView de cacao - ¿Dibujando en la parte superior?
- 21. Establecer la ubicación del cuadro de diálogo de Android
- 22. JOptionPane para obtener la contraseña
- 23. Aplicar un estilo a todos los cuadros de diálogo (cuadro de diálogo spinner, cuadro de diálogo de alerta, etc.)
- 24. Android muestra otro cuadro de diálogo desde un cuadro de diálogo
- 25. cuadro de diálogo jQuery
- 26. Propietario de la ventana en WPF sin comportamiento siempre en la parte superior
- 27. cómo mostrar un cuadro de diálogo en jQuery Mobile
- 28. Eclipse Indigo: ¿cómo desinstalo un complemento si el cuadro de diálogo Ayuda -> Acerca de Eclipse SDK no se mostrará?
- 29. UITextView margen extraño en la parte superior?
- 30. La opacidad del fondo del cuadro de diálogo Primefaces se duplica cuando falla la acción en el cuadro de diálogo
Para ampliar en el comentario, que es realmente bueno. Utilice algo que amplíe JFrame en lugar de algo que amplíe JDialog para obtener algo que destelle en la barra de tareas cuando invoque traer al frente –