Para mostrar un mensaje en Java se utiliza el showMessageDialog de la librería JOptionPane, con esto conseguiremos un mensaje como el siguiente:
![]() |
showMessageDialog de JOptionPane |
import javax.swing.JOptionPane;
//Aqui mostramos el mensaje:
JOptionPane.showMessageDialog(rootPane, "true");//Muestra el mensaje anterior.
Más tipos de mensajes:
Nota: Estos mensajes se muestran así por que se esta usando substance.
Mensajes personalizados con JDialog.
Si no queremos hacer uso de los mensajes típicos de Java, podemos crear los nuestros con nuevos diseños y opciones personalizadas, a continuación veremos un mensaje personalizado que permite aceptar o cancelar una determinada acción.
Pues bien sin mas ni menos, manos a la obra :
Primero agregamos un formulario de tipo JDialog:
Diseño: Una vez agregado nuestro formulario, en modo diseño podemos hacer algo parecido a lo que veremos a continuación:
![]() |
JDialog en modo diseño. |
Ahora una vez hecho el diseño del JDialog, vamos al código y agregamos un atributo privado a esta clase que va a permitir guardar el valor boolean de aceptado(true) o cancelado(false):
private boolean acep = false; //Atributo para ver si se acepta o no el mensaje, por defecto false.
Luego colocamos en la acción ActionPerformed del boton Aceptar:
acep=true;
this.setVisible(false);
Así mismo en la acción ActionPerformed del botón Cancelar:
this.setVisible(false);
Ahora modificamos el constructor de la clase, para que pida un parámetro más de tipo String para la pregunta que se muestra en el JLabel:
public DialogAcCa(java.awt.Frame parent, boolean modal, String preg) {
super(parent, modal);
initComponents();
setLocationRelativeTo(null);
this.lblPregunta.setText(preg);
this.setVisible(true);
this.setAlwaysOnTop(true);
}
El método getResponse el que nos regresa el valor de boolean de aceptado o no:
public boolean getResponse(){
return this.acep;
}
Hasta aquí listo el JDialog.
Para llamar o hacer uso de nuestro mensaje se lo hace de la siguiente manera:
//Se crea el dialog, enviando la pregunta como un parámetro.
DialogAcCa D = new DialogAcCa(this, rootPaneCheckingEnabled,"¿Desea Salir?");
if (D.getResponse()) //D es nuestro Dialog Personalizado, espera la respuesta.
{ //Operaciones que se realizan al Aceptar el mensaje.
} else
{ //Operaciones que se realizan al Cancelar el mensaje.
}
Y tendremos esto:
![]() |
Mensaje personalizado con JDialog. |
![]() |
JDialog con la propiedad undecorated = true. |
Este es el código resultante de la Clase DialogAcCa (Nuestro mensaje personalizado JDialog) con las funciones mas importantes:
public class DialogAcCa extends javax.swing.JDialog {
public DialogAcCa(java.awt.Frame parent, boolean modal, String preg) {
super(parent, modal);
initComponents();
setLocationRelativeTo(null);
this.lblPregunta.setText(preg);
this.setVisible(true);
this.setAlwaysOnTop(true);
}
public boolean getResponse(){
return this.acep;
}
private void btnAceptarActionPerformed(java.awt.event.ActionEvent evt) {
acep=true;
this.setVisible(false);
}
private void btnCancActionPerformed(java.awt.event.ActionEvent evt) {
this.setVisible(false);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
DialogAcCa dialog = new DialogAcCa(new javax.swing.JFrame(), true,"Error");
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
private boolean acep = false; //Nuestro Atributo para saber si se acepta o no.
}
Espero esto les sirva de ayuda...