سؤال

أحاول إطلاق حدث ما عندما يتم الاختيار من ملف JComboBox.

المشكلة التي أواجهها هي أنه لا يوجد شيء واضح addSelectionListener() طريقة.

لقد حاولت استخدام actionPerformed(), ، لكنه لا يشتعل أبداً.

قصيرة من تجاوز نموذج ل JComboBox, لقد نفدت الأفكار.

كيف يتم إعلامي بتغيير التحديد في ملف JComboBox?**

يحرر: علي ان اعتذر.اتضح أنني كنت أستخدم فئة فرعية تسيء التصرف من JComboBox, ، لكنني سأترك السؤال لأن إجابتك جيدة.

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

المحلول

ينبغي أن يستجيب لها ActionListeners, ، مثله:

combo.addActionListener (new ActionListener () {
    public void actionPerformed(ActionEvent e) {
        doSomething();
    }
});

@ جون كالسبيك يشير بحق إلى ذلك addItemListener() سوف تعمل أيضا.قد تحصل على 2 ItemEvents, ، على الرغم من ذلك، أحدهما لإلغاء تحديد العنصر المحدد مسبقًا، والآخر لتحديد العنصر الجديد.فقط لا تستخدم كلا النوعين من الأحداث!

نصائح أخرى

مثال على الكود ItemListener تطبيق

class ItemChangeListener implements ItemListener{
    @Override
    public void itemStateChanged(ItemEvent event) {
       if (event.getStateChange() == ItemEvent.SELECTED) {
          Object item = event.getItem();
          // do something with object
       }
    }       
}

الآن سوف نحصل على العنصر المحدد فقط.

ثم قم فقط بإضافة المستمع إلى JComboBox الخاص بك

addItemListener(new ItemChangeListener());

سأحاول itemStateChanged() طريقة ItemListener الواجهة في حالة فشل حل jodonnell.

يتم هنا إنشاء ComboBox بإضافة مستمع لتغيير تحديد العنصر:

    JComboBox comboBox = new JComboBox();

    comboBox.setBounds(84, 45, 150, 20);
    contentPane.add(comboBox);

    JComboBox comboBox_1 = new JComboBox();
    comboBox_1.setBounds(84, 97, 150, 20);
    contentPane.add(comboBox_1);
    comboBox.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent arg0) {
            //Do Something
        }
    });
}

يمكنك تجربة هذه

 int selectedIndex = myComboBox.getSelectedIndex();

-أو-

Object selectedObject = myComboBox.getSelectedItem();

-أو-

String selectedValue = myComboBox.getSelectedValue().toString();

كنت أبحث مؤخرًا عن هذا الحل نفسه وتمكنت من العثور على حل بسيط دون تعيين متغيرات محددة للعنصر الأخير المحدد والعنصر الجديد المحدد.وعلى الرغم من أن هذا السؤال مفيد جدًا، إلا أنه لم يقدم الحل الذي أحتاجه.هذا حل مشكلتي، وآمل أن يحل مشكلتك والآخرين.شكرًا.

كيف أحصل على العنصر السابق أو الأخير؟

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