Había creado un JOptionPane
del tipo showInputDialog
. Cuando lo abre, me muestra dos botones: OK y Cancelar. Me gustaría manejar la acción cuando presiono Cancelar el botón, pero no sé cómo llegar. ¿Cómo puedo obtenerlo?Cómo manejar el botón cancelar en JOptionPane
Respuesta
Por ejemplo:
int n = JOptionPane.showConfirmDialog(
frame, "Would you like green eggs and ham?",
"An Inane Question",
JOptionPane.YES_NO_OPTION);
if (n == JOptionPane.YES_OPTION) {
} else if (n == JOptionPane.NO_OPTION) {
} else {
}
Alternativamente con showOptionDialog
:
Object[] options = {"Yes, please", "No way!"};
int n = JOptionPane.showOptionDialog(frame,
"Would you like green eggs and ham?",
"A Silly Question",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options,
options[0]);
if (n == JOptionPane.YES_OPTION) {
} else if (n == JOptionPane.NO_OPTION) {
} else {
}
Ver How to Make Dialogs para más detalles.
EDIT: showInputDialog
String response = JOptionPane.showInputDialog(owner, "Input:", "");
if ((response != null) && (response.length() > 0)) {
}
Necesito usar showInputDialog que me devuelva un objeto de cadena – Mazzy
ShowMessageDialog, no debe mostrar dos botones, por lo que hay algo que no está bien con su código o su interpretación de él. De todos modos, si desea dar al usuario una opción y desea detectar esa opción, no use un showMessageDialog sino un showConfirmDialog, y obtenga el int retornado y pruébelo para ver si es JOptoinPane.OK_OPTION.
he cometido un error. Me refiero a showInputDialog. Tengo como devolver un objeto de cadena – Mazzy
Ésta es una cuestión de edad, y yo soy un novato de Java, por lo que puede haber mejores soluciones, pero yo quería saber lo mismo, y tal vez puede ayudar a los demás, lo que hizo fue comprobar si la respuesta fue nula.
Esto funcionó para mí:
//inputdialog
JOptionPane inpOption = new JOptionPane();
//Shows a inputdialog
String strDialogResponse = inpOption.showInputDialog("Enter a number: ");
//if OK is pushed then (if not strDialogResponse is null)
if (strDialogResponse != null){
(Code to do something if the user push OK)
}
//If cancel button is pressed
else{
(Code to do something if the user push Cancel)
}
Pero su código no maneja una situación, si su entrada está vacía y presiona el botón OK. Obtienes el error. – frank17
Esta puede ser su respuesta:
package Joptionpane;
import javax.swing.JOptionPane;
public class Cancle_on_JOptionPane {
public static void main(String[] args) {
String s;
int i;
for(i=0;i<100;i++){
s = JOptionPane.showInputDialog(null,"What is your favorite fruit ?");
try{
if(s.equals("")) {
JOptionPane.showMessageDialog(null," Enter your answer !!!"," ^-^ Information^-^ ",JOptionPane.INFORMATION_MESSAGE);
i=2;
}
else {
JOptionPane.showMessageDialog(null," s = "+s," ^-^ Information^-^ ",JOptionPane.INFORMATION_MESSAGE);
i=100;
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"Cancle answer !!!"," ^-^ Information^-^ ",JOptionPane.INFORMATION_MESSAGE);
i=100;
}
}
}
}
Si bien este bloque de código puede responder la pregunta, sería mejor si pudiera proporcionar una pequeña explicación de por qué lo hace. Por favor [edite] su respuesta para incluir tal descripción. –
package Joptionpane;
import javax.swing.JOptionPane;
public class Cancle_on_JOptionPane {
public static void main(String[] args) {
String s;
int i;
for (i=0;i<100;i++){
s = JOptionPane.showInputDialog(null,"What is your favorite fruit ?");
try {
if (s.equals("")) {
JOptionPane.showMessageDialog(null," Enter your answer !!!"," ^-^ Information^-^ ",JOptionPane.INFORMATION_MESSAGE);
i=2;
} else {
JOptionPane.showMessageDialog(null," s = "+s," ^-^ Information^-^ ",JOptionPane.INFORMATION_MESSAGE);
i=100;
}
}
catch (Exception e) {
JOptionPane.showMessageDialog(null,"Cancle answer !!!"," ^-^ Information^-^ ",JOptionPane.INFORMATION_MESSAGE);
i=100;
}
}
}
}
Agregue una explicación de cómo funciona el código. –
- 1. Extendiendo FutureTask, cómo manejar cancelar
- 2. ASP.NET MVC: la forma correcta de manejar un botón cancelar
- 3. botón Cancelar en forma
- 4. ¿Cómo manejar el botón "Arriba"?
- 5. Obtener el valor de retorno de JOptionPane
- 6. Haciendo clic en el botón cancelar showInputDialogue
- 7. JDialog cancelar botón
- 8. JOptionPane showConfirmDialog con un solo botón
- 9. UIAlertView sin botón Cancelar?
- 10. IAP iOS UIAlertView botón cancelar
- 11. Botón de aviso de JavaScript Cancelar botón?
- 12. UIAlertView: ¿Dónde debería estar el botón cancelar?
- 13. UIActionSheet en el iPad no muestra el botón cancelar
- 14. Cancelar el botón de envío predeterminado en ASP.NET
- 15. Abortar vs. Cancelar Botón: ¿Cuándo uso Abortar, cuando Cancelar?
- 16. Cómo manejar el botón Atrás en Windows Phone 7
- 17. Mostrar siempre el botón cancelar en un UISearchBar
- 18. enlaces clicables en JOptionPane
- 19. Cancelar AsyncTask cuando el usuario presiona el botón
- 20. Impedir cancelar el modo de acción presionando el botón Atrás
- 21. IOS - Personalización del botón Cancelar UISearchBar
- 22. ¿Debería un botón cancelar solicitar confirmación?
- 23. Publicación de Twitter iOS6 'Cancelar' botón cuestión
- 24. El botón Cancelar de la barra de búsqueda no funciona
- 25. Cómo manejar el envío de formulario ASP.NET MVC Botón Atrás?
- 26. Cómo manejar el botón de apagado de una computadora portátil
- 27. Agregar un botón cancelar al teclado UITextField
- 28. UISearchBar dentro de una UIToolbar no mostrará el botón cancelar
- 29. ABPeoplePickerNavigationController: quite el botón "Cancelar" sin utilizar métodos/propiedades privados.
- 30. El delegado de UISearchBar no responde al botón cancelar
http://stackoverflow.com/a/10966330/829571 – assylias