سؤال

هل من الممكن تعيين مفاتيح مفاتيح مفاتيح المنخر إلى الأزرار في مربع حوار Joptionpane؟ أرغب في أن أكون قادرا، في مربع حوار Joptionpane تم إنشاؤه مع الخيارات نعم، لا وإلغاء، اضغط Y لضرب الزر "نعم"، N لضرب أي زر وهروب لتنشيط زر الهروب. وبالمثل في مربع حوار بأزرار جيدة وإلغاء الأزرار، أود أن أكون قادرا على تنشيطها بالدخول والهروب.

لقد حاولت تمرير JButtons في صفيف كائن زر Joptionpane مع مجموعة Mnemonics بالفعل. ومع ذلك، فإن العمل المنطوم والأزرار تظهر بشكل صحيح في مربعات الحوار، ومع ذلك، فإنها لا تتصرف بشكل صحيح عند تنشيطها. الأكثر ملحقة أنها لا تتخلص من مربع الحوار.

ما هي الطريقة الصحيحة لإضافة مفاتيح مفاتيح النخاخات وإنشاءات التخلص من أزرار حوار Joptionpane؟

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

المحلول

يمكنك إنشاء الخاص بك JOptionPane, ثم الحلقة من خلال مكونات الجزء (الأطفال وما إلى ذلك) التحقق لمعرفة ما إذا كانت أي مكونات instanceof JButton, ، وإذا كان الأمر كذلك، فقم بفحص النص، وقم بتعيين الذاكرة الهرمية المناسبة.

JOptionPane p = new JOptionPane();
Component[] c = p.getComponents();

نصائح أخرى

الاستفادة من Uimanager كما يلي:

UIManager.put("OptionPane.okButtonMnemonic", "79");  // for Setting 'O' as mnemonic
UIManager.put("OptionPane.cancelButtonMnemonic", "67"); // for Setting 'C' as mnemonic

أرسل الأزرار في المعلمات بدلا من السلاسل

    JButton button1 = new JButton( "<html>" + nextQuestion1 + "</html>");
    button1.setMnemonic('a');
    JButton button2 = new JButton(nextQuestion2 + "VUHU");
    JButton button3 = new JButton(abort);
    Object[] possibleValues = new Object[]{button1,button2,button3};
    int selectedValue = showOptionDialog(owner, question, possibleValues);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top