Los cuadros de diálogo son herramientas que proporcionan modos interactivos para los procesos de diálogo humano-computadora. La aplicación proporciona información al usuario a través de un cuadro de diálogo u obtiene información del usuario. Un cuadro de diálogo es una ventana temporal donde puede colocar controles para obtener la entrada del usuario. En el swing, hay dos clases de diálogo, que son la clase JDialog y la clase JoptionPane. La clase JDialog proporciona la construcción y la gestión de los cuadros de diálogo comunes;
Clase Jdialog
La clase JDialog sirve como la clase base para el cuadro de diálogo. Los cuadros de diálogo son diferentes de las ventanas generales.
Los cuadros de diálogo se dividen en obligatorios y no obligatorios. El cuadro de diálogo obligatorio no puede interrumpir el proceso de diálogo hasta que el cuadro de diálogo esté terminado, y el programa no responderá a eventos fuera del cuadro de diálogo. Un cuadro de diálogo no obligatorio puede interrumpir el proceso de diálogo y responder a eventos fuera del cuadro de diálogo. El tipo forzado también se llama un cuadro de diálogo de modo, y el cuadro de diálogo no forzado también se llama un cuadro de diálogo sin modo.
Los objetos JDialog también son un contenedor, por lo que también puede asignar un administrador de diseño en el cuadro de diálogo JDialog. Sin embargo, los componentes no se pueden agregar directamente al cuadro de diálogo. Dado que un diálogo depende de una ventana, para crear un diálogo, primero debe crear una ventana.
Hay 3 constructores comúnmente utilizados para la clase JDialog:
Existen varios otros métodos comunes de la clase JDialog:
[Ejemplo] El applet declara una clase de ventana de usuario y una clase de cuadro de diálogo. Ingrese la información correspondiente en el cuadro de diálogo y presione el botón Aceptar en el cuadro de diálogo. Determine el método de monitoreo del botón, transfiera la información ingresada en el cuadro de diálogo a la ventana del usuario y muestre la información de selección en el cuadro de texto correspondiente de la ventana del usuario.
import java.applet.*import javax.swing.*; import java.awt.*; import java.awt.event.*; class mywindow extiende jframe implementa ActionListener {P rivate Botón 1, botón 2. MyWindow (string s) {súper (s); (100,100); = New JTextField (20); void static retur nname (string s) {if (flg == 1) text1.setText ("La fruta seleccionada es:"+S); +S); 1; Título de JLabel; nombre "); text = new JTextField (10); Text.SetEditable (true); Con.setLayout (new FlowLayout ()); Con.setsize (200,100); SetModal (falso); Done = new JButton (" Ok ") ; ;El ejemplo anterior crea un cuadro de diálogo obligatorio. De esta manera, puede ver el efecto de algunos diálogos en la interfaz.
Cambie el ejemplo anterior a un cuadro de diálogo no obligatorio con solo una pequeña cantidad de cambios. Primero, cambie el código "Super (F, S, verdadero);"
El segundo cambio: resulta que el método returnName () se llama cuando responde al evento de confirmación del botón, y la cadena obtenida por el cuadro de diálogo se devuelve al programa. Ahora, cuando la cadena de selección de entrada del cuadro de texto finaliza, el método debe llamarse de inmediato. Para hacer esto, debe monitorear los eventos de entrada en el cuadro de texto y registrar el monitor para el texto:
public void ActionPerformed (ActionEvent E) {if (e.getSource () == text) {mywindow.returnName (text.gettext ()); text .gettext ());Clase joptionpane
A menudo se encuentra situaciones de diálogo muy simples. La clase JoptionPane proporciona un conjunto de métodos estáticos para permitir a los usuarios seleccionar un cierto tipo de cuadro de diálogo. El siguiente código es el cuadro de diálogo Verificar:
int resultado = jOptionPane.ShowConfirmDialog (Padre, "¿Realmente quieres salir?", "Salir confirmado", joptionPane.yes_no_cancel_option);
El texto "confirmar" en la parte media del nombre del método es el tipo de creación de un cuadro de diálogo, y el texto confirma indica que se selecciona el cuadro de diálogo de confirmación. Cambie el texto Confirmar a uno de los otros tres tipos y se convierte en el cuadro de diálogo de tipo correspondiente. El significado de los cuatro parámetros del código anterior es: el primer parámetro especifica la ventana principal de este cuadro de diálogo; Especifica que el cuadro de diálogo tiene tres los botones son "sí (y)," no (n) y "deshacer". El resultado de retorno del método es el resultado del usuario que responde a este cuadro de diálogo, consulte las posibles respuestas dadas en la Tabla 11-5.
El cuadro de diálogo de entrada solicita al usuario que ingrese la información de selección en forma de lista o cuadro de texto. Aquí hay un código esquemático para un cuadro de diálogo de entrada que selecciona un proyecto en ejecución de la lista:
String result = (string) joptionPane.showInputDialog (padre, "Seleccione un deporte", "Este es el cuadro de diálogo de selección de deportes", joptionPane.Question_message, nulo, nuevo objeto [] {"jugar al fútbol", "jugar baloncesto", ",", ",", ",", ",", ",", ",", "" ejecutar "," saltar cuerda "}," ejecutar "); El cuarto parámetro es el tipo de información, el quinto parámetro no tiene ningún efecto especial aquí, y siempre es nulo; El cuadro de diálogo también incluye los botones Aceptar y Deshacer.
Tipo de cuadro de diálogo JoptionPane
Resultados devueltos por el cuadro de diálogo JoptionPane
Opciones de tipo de información para el cuadro de diálogo JoptionPane
A veces, el programa simplemente genera información y no requiere que el usuario tenga comentarios. Tal cuadro de diálogo se puede crear con la siguiente forma de código:
JOpttionPane.ShowMessEdialog (padre, "Este es un programa Java", "Soy el cuadro de diálogo Información de salida", joptionPane.Plain_Message);
El significado de los primeros tres parámetros en el código anterior es el mismo que el descrito anteriormente, y el parámetro final es que el tipo de información se especifica para no incluir ningún iconos.