كيفية استخدام JFace FileDialog من داخل الكسوف المساعد في غير مشروط الطريقة ؟

StackOverflow https://stackoverflow.com/questions/617707

  •  03-07-2019
  •  | 
  •  

سؤال

أنا أكتب الكسوف المساعد, واستجابة بعض الإجراءات أنا مثيرة للاهتمام في بداية سلسلة من العمليات (في وظيفة منفصلة).واحدة من هذه العمليات هو طلب المستخدم لتوفير اسم ملف الذي أحاول القيام به مع JFace JDialog.

ولكن أنا ليس من الواضح كيفية القيام بذلك في غير مشروط ؛ على سبيل المثال, أين يمكنني الحصول على عرض قذيفة ؟ كيف يمكنني التأكد من واجهة المستخدم تواصل العمل في حين المطور يمكن تحرير الاشياء في الحوار ؟

هل كانت مفيدة؟

المحلول

قد تكون أنت يمكن أن نرى كيف الكسوف نفسها أنها:

FindAndReplaceDialog.java

 /**
  * Creates a new dialog with the given shell as parent.
  * @param parentShell the parent shell
  */
 public FindReplaceDialog(Shell parentShell) {
     super(parentShell);

     fParentShell= null;

     [...]

     readConfiguration();

     setShellStyle(SWT.CLOSE | SWT.MODELESS | SWT.BORDER | SWT.TITLE | SWT.RESIZE);
     setBlockOnOpen(false);
 }

 /**
  * Returns this dialog's parent shell.
  * @return the dialog's parent shell
  */
 public Shell getParentShell() {
     return super.getParentShell();
 }

/**
 * Sets the parent shell of this dialog to be the given shell.
 *
 * @param shell the new parent shell
 */
public void setParentShell(Shell shell) {
    if (shell != fParentShell) {

        if (fParentShell != null)
            fParentShell.removeShellListener(fActivationListener);

        fParentShell= shell;
        fParentShell.addShellListener(fActivationListener);
    }

    fActiveShell= shell;
}

فإنه لا يتمكنون من الأم قذيفة اعتمادا على التركيز من مربع الحوار.

 /**
  * Updates the find replace dialog on activation changes.
  */
 class ActivationListener extends ShellAdapter {
     /*
      * @see ShellListener#shellActivated(ShellEvent)
      */
     public void shellActivated(ShellEvent e) {
         fActiveShell= (Shell)e.widget;
         updateButtonState();

         if (fGiveFocusToFindField && getShell() == fActiveShell && 
               okToUse(fFindField))
             fFindField.setFocus();

     }

     /*
      * @see ShellListener#shellDeactivated(ShellEvent)
      */
     public void shellDeactivated(ShellEvent e) {
         fGiveFocusToFindField= false;

         storeSettings();

         [...]

         fActiveShell= null;
         updateButtonState();
     }
 }

A ShellAdapter يوفر الافتراضي تطبيقات أساليب وصفها ShellListener واجهة ، الذي يوفر أساليب التعامل مع التغيرات في الدولة من Shell.

نصائح أخرى

والشيء تمد هو أن يجب أن تتضمن قيمة أسلوب SWT.MODELESS.

وهذا الاسلوب هو واحد من أهم الأشياء في سبحانه وتعالى يجب أن ننظر، لأنه يمكنك التحكم وتهيئة الكثير فقط بسبب القيمة styel و.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top