2009-08-10 21 views
8

Necesito hacer un diálogo personalizado con 4 opciones, pero hasta donde puedo decir, solo puede tener una con tres opciones. Aquí es cómo me gustaría hacer un panel de opción con 3 opciones:Haciendo un JOptionPane con 4 opciones

 Frame refFrame = DialogUtils.getReferenceFrame(); 

     ///TODO: 
     /// - Use DialogUtils 
     int option = JOptionPane.showOptionDialog(refFrame, 
      msg, 
      rsc.str("918"), 
      JOptionPane.YES_NO_CANCEL_OPTION, 
      JOptionPane.INFORMATION_MESSAGE, 
      DialogUtils.INFO_ICON, 
      options, 
      options[0]); 

Pero no podía encontrar algún tipo de sustitución abierta para YES_NO_CANCEL_OPTION. ¿Hay alguna manera de hacer que JOptionPane permita cuatro opciones?

Respuesta

14

Puede utilizar cualquiera de las constantes de opción del JOptionPane, sólo tiene que suministrar una gama de opciones de tamaño 4:

public static void main(String[] args) { 
    String[] options = new String[] {"Yes", "No", "Maybe", "Cancel"}; 
    int response = JOptionPane.showOptionDialog(null, "Message", "Title", 
     JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, 
     null, options, options[0]); 

    // Where response == 0 for Yes, 1 for No, 2 for Maybe and -1 or 3 for Escape/Cancel. 
} 
1

Basta con utilizar una matriz de tamaño options 4 en vez de 3 ...