سؤال

انا املك JMenu مع JMenuItem, ، وعندما أنقر على هذا ، أحتاج إلى فتح أ JFrame أو النافذة ، بمعنى آخر مكون من الداخل JButton, JTextField,...

كيف يمكنني أن أفعل هذا ؟

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

المحلول

يمكنك إنشاء JFrame بنفس الطريقة التي قمت بإنشائها الأولية JFrame, ، و اتصل

setVisible(true);

في ال ActionListener من الخاص بك JMenuItem لجعلها مرئية عند النقر فوق القائمة.


إذا كنت تريد أن يكون مشروطًا (لا يمكن الوصول إلى الإطار الأصلي ما لم يتم إغلاق النافذة الجديدة) ، فيمكنك استخدام أ JDialog بدلا من ذلك ، الإعداد modal صحيح في المنشئ ، أو الاتصال setModal(true).

نصائح أخرى

أنا أكتب في الإجابة لعرض الرمز الجيد:

إذا استخدمت JFrame ، فقد حصلت على هذا الخطأ: "java.lang.illegalargumentException: إضافة نافذة إلى حاوية".

هذا هو الكود الخاص بي في طريقة ActionPerformed:

PopupFactory factory = PopupFactory.getSharedInstance();
JFrame frame = new JFrame();
frame.setLayout(null);
frame.setBounds(428, 99, 185, 155);

final JButton button = new JButton();
button.setText("Button");
button.setBounds(10, 93, 111, 25);
frame.getContentPane().add(button);

final Popup popup = factory.getPopup(null, frame, 200, 200);
popup.show();

أنت مربكة "النوافذ المنبثقة" و "Windows".

يتم عرض المنبثقة بشكل عام عند النقر بزر الماوس الأيمن على بعض الكائنات. ستعرض المنبثقة قائمة الإجراءات التي يمكن تنفيذها على هذا الكائن. على سبيل المثال ، قد يكون حقل النص "قطع" و "نسخ" و "لصق". اقرأ القسم من البرنامج التعليمي المتأرجح على "إحضار قائمة منبثقة" للمزيد من المعلومات.

يتم استخدام نافذة لعرض مكونات التأرجح الأخرى في JFrame أو JDialog.

بالنظر إلى أنك تستدعي هذا الإجراء من عنصر قائمة ، أعتقد أنك ربما ترغب في إنشاء وعرض Jdialog مشروط ، وليس Jframe أو popup.

أيضًا ، أثناء قراءة البرنامج التعليمي ، اقرأ القسم الخاص بـ "استخدام مديري التخطيط". إن استخدام التخطيطات الخالية ليس هو أفضل طريقة لإنشاء مربع حوار.

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