BOGUE : Bouton Fermer ne ferme pas AFC non modales UIPropertyDialog

SYMPTÔMES

Si une applet ou une application de Java affiche une boîte de dialogue non modale de Classes AFC (Application Foundation) Feuille de propriétés , le bouton Fermer de cette boîte de dialogue n’a aucun effet. Vous devez cliquer sur OK ou sur Annuler pour fermer la boîte de dialogue.

Résolution

Vous pouvez éviter ce comportement si vous créez la boîte de dialogue Feuille de propriétés sous la forme d’une boîte de dialogue modale.

ÉTAT

Microsoft a confirmé qu’il s’agit d’un bogue dans les produits Microsoft répertoriés au début de cet article.

Plus d'informations

Lorsque vous cliquez sur le bouton Fermer la boîte de dialogue Feuille de propriétés est non modale, elle se traduit également pas dans un appel à doApplyAction(), doCancelAction() ou doOKAction().

Procédure pour reproduire le comportement

  1. Entrez et compilez le programme suivant :
          // Propertydialog.java      import java.awt.*;      import com.ms.ui.*;      import com.ms.ui.event.*;      import java.awt.event.*;      import com.ms.fx.*;      import java.text.*;      class propertydialog extends UIFrame implements IUIActionListener      {          public static void main(String args[])          {            try {                propertydialog app = new propertydialog();               app.resize(200, 100);               app.show();            }            catch (Exception e) {               e.printStackTrace();            }          }          public boolean handleEvent(Event e)          {              if (e.id == Event.WINDOW_DESTROY)                  System.exit(0);              return (super.handleEvent(e));          }          public propertydialog()          {            setLayout(new UIFlowLayout());            UIPushButton pb = new               UIPushButton("Create PropertyDialog",UIPushButton.RAISED);            pb.addActionListener(this);            add(pb);         }         public void createDialog()         {            UIFrame frame = new UIFrame("Dialog");            UIPropertyDialog dialog = new myDialog(frame, false);            myPage sheet = new myPage(dialog);            dialog.addPage("PropertySheet1",sheet);            System.out.println("Displaying Property Sheet");            Object o = dialog.display();            System.out.println("Property sheet returned " + o);         }         public void actionPerformed(UIActionEvent event)         {            createDialog();         }      }      class myDialog extends UIPropertyDialog      {         public myDialog(UIFrame f, boolean modal) {            super(f, "UIPropertyDialog", modal, UIPropertyDialog.SMALL);         }         public boolean doApplyAction(Event e, Object o) {            System.out.println("Doing ApplyAction");            return true;         }         public boolean doCancelAction(Event e, Object o) {            System.out.println("Doing CancelAction");            return true;         }         public boolean doOKAction(Event e, Object o) {            System.out.println("Doing OKAction");            return true;         }      }      class myPage extends UIPropertyPage      {         myPage(UIPropertyDialog dialog)         {            super(dialog);         }         public boolean isApplyable() {            return true;         }         public boolean addContent()         {            add(new UIText("This is UIPropertySheet"));            return true;         }      }
  2. Exécuter à l’aide de jview propertydialog et cliquez sur Créer un PropertyDialog.
  3. Cliquez sur le bouton Fermer dans la boîte de dialogue Feuille de propriétés .

    RÉSULTAT : Il ne se ferme pas.
  4. Cliquez sur OK ou sur Annuler pour fermer la boîte de dialogue.

RÉFÉRENCES

Pour plus d’informations sur la classe UIPropertyDialog (dans le Kit de développement de la documentation de Java Application Foundation Classes), visitez le site Web de Microsoft à l’adresse suivante :
Propriétés

ID d'article : 201484 - Dernière mise à jour : 15 févr. 2017 - Révision : 1

Microsoft Virtual Machine for Java, Microsoft Software Development Kit for Java 3.2

Commentaires