2009-11-10 4 views

Odpowiedz

13

nie można użyć statycznej metody MessageDialog.open(bunch of parameters), musisz utworzyć Otwórz okno dialogowe i zadzwoń do niestatycznego użytkownika, aby sprawdzić jego wartość zwracaną.

MessageDialog dg = new MessageDialog(
      window.getShell(), 
      "My title", 
      null, 
      "My question", 
      MessageDialog.QUESTION_WITH_CANCEL, 
      new String[]{ 
       IDialogConstants.YES_LABEL, 
       IDialogConstants.NO_LABEL, 
       IDialogConstants.CANCEL_LABEL}, 
      0 
      ); 
    switch(dg.open()) { 
    case 0: 
     //yes 
     System.out.println("yes"); 
     break; 
    case 1: 
     //no 
     System.out.println("no"); 
     break; 
    case 2: 
     //cancel 
     System.out.println("cancel"); 
     break; 
    } 
+0

Spróbuję. –

+0

Czy to działa zgodnie z oczekiwaniami? – Jerome

+0

Przyciski są w dziwnej kolejności (Eclipse 3.5.2): Nie Anuluj Tak zamiast Tak Nie Nie Anuluj. Jak zrobić je w "właściwej" kolejności? – dplass

0

Patrząc na JavaDoc, wierzę nr i Anuluj mają ten sam efekt: fałszywy

Returns: 
    true if the user presses the OK or Yes button, false otherwise 
+0

Tyle wiem, ale nie o to pytam. Potrzebuję skorzystać z okna dialogowego QUESTION_WITH_CANCEL. Jeśli potrzebuję tylko standardowego tak/nie, użyłbym standardowego okna dialogowego potwierdzenia. –