¿Puede alguien mostrar código Java Swing/recurso web simple que colocará el diálogo emergente alineado al centro sobre una ventana JFrame existente cuando se haga clic en el botón JFrame?Java Swing: cuadro de diálogo de posicionamiento en la parte superior de la ventana existente
Respuesta
bastante simple de Oh..it:
Digamos que tiene un JFrame que contiene un JDialog, y desea que el JDialog (cuando se abre) para ser justo encima de JFrame.
Así que en JDialog constructor, debe tener algo como:
public class MyDialog extends JDialog
public MyDialog(JFrame parent)
{
super.setLocationRelativeTo(parent); // this will do the job
}
En otras palabras, pasar el puntero JFrame a su diálogo y llamar setLocationRelativeTo (...); método.
¿De qué tipo de diálogo emergente está hablando? Si está utilizando JOptionPane o algo similar, establezca su componente principal en JFrame y se centrará automáticamente en la parte superior de la ventana de JFrame.
JOptionPane.showMessageDialog(frame, "Hello, World!");
Si va a crear su propio JDialog, puede obtener la posición del JFrame utilizando JFrame.getLocation() y su tamaño utilizando JFrame.getSize(). La matemática es bastante simple desde allí; simplemente calcule el centro del JFrame y restar la mitad del ancho/alto del JDialog para obtener la esquina superior izquierda del cuadro de diálogo.
Si su JDialog aún no se ha renderizado, JFrame.getSize() puede darle un tamaño cero. En ese caso, puede usar JDialog.getPreferredSize() para averiguar qué tan grande será una vez que se muestre en la pantalla.
Si quieres un modal y centrado en una ventana de diálogo ...
en el constructor del diálogo:
class CustomDialog extends JDialog {
public CustomDialog(Frame owner, String title, boolean modal) {
super(owner, title, modal);
setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
...
setSize(150, 100);
setLocationRelativeTo(owner);
}
}
Para mostrar el cuadro de diálogo (usando un botón, etc.):
public void actionPerformed(ActionEvent e) {
dialog.setVisible(true);
}
- 1. Mantener diálogos en la parte superior de la ventana, pero no en la parte superior de todo
- 2. Java Swing: ¿cómo mostrar un panel en la parte superior de otro panel?
- 3. Clonar los botones de diálogo jqueryui en la parte superior del cuadro de diálogo
- 4. JOptionPane no mostrará su cuadro de diálogo en la parte superior de otras ventanas
- 5. Cuadro de información de estilo iTunes o Xcode en la parte superior de la ventana
- 6. jQuery UI diálogo de posicionamiento: ajuste la posición superior por 20px -
- 7. Java setFullScreenWindow() mantener en la parte superior
- 8. ¿Cómo implementar correctamente un diálogo modal en la parte superior de un diálogo no modal?
- 9. Diálogo jQuery de posicionamiento
- 10. jqueryui diálogo posicionamiento
- 11. Determine la distancia desde la parte superior de un div a la parte superior de la ventana con javascript
- 12. Mantener la ventana en la parte superior al cambiar espacios
- 13. Cómo mostrar un menú en la parte superior de la barra de título de la ventana
- 14. Ventana del propietario de WPF en la parte superior de la ventana secundaria
- 15. Swing: Desplácese hasta la parte inferior de JScrollPane, condicional en la ubicación de la ventana actual
- 16. Capas WebView de cacao - ¿Dibujando en la parte superior?
- 17. java swing cerrar la ventana sin salir de la aplicación
- 18. ¿Cómo mantener mi ventana más alta en la parte superior?
- 19. ExtJS 4 "siempre en la parte superior" Ventana
- 20. Cómo obtener el diálogo jQueryui scrollTop para desplazar el contenido del diálogo a la parte superior
- 21. hilos Inspección de Java en Linux utilizando la parte superior
- 22. ¿Cómo agregar 20 píxeles de blanco en la parte superior de un archivo de imagen existente?
- 23. Ventana corrediza Java Swing
- 24. La ventana de la aplicación WPF aparece en la parte superior de SplashScreen
- 25. Abrir nuevo cuadro de diálogo desde un cuadro de diálogo en qt
- 26. cómo insertar o agregar una nueva línea en la parte superior de la jtextarea en java swing?
- 27. Ventana emergente en Java Swing
- 28. Iniciando GridBagLayout desde la esquina superior izquierda en Java Swing
- 29. Posicionamiento de ventana C#
- 30. Enfrente de "siempre en la parte superior"
No me di cuenta de que el método existía; bastante práctico! – rob
Guau, ¡esto realmente me ayudó! Sin embargo, pequeños detalles ... solo se debe invocar DESPUÉS de configurar el tamaño del diálogo, o el cuadro de diálogo aparecerá con la esquina superior izquierda centrada en la ventana principal. – Nyerguds