الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طريقة التحكم بالـ JComboBox

بدأه rahmony في 13 ديسمبر 2013 · 5 رد · 428 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاتهه


 


 


 


يسعد مساكم جميعا ..


 


 


لدي برنامج اعمل عليه و واجهة مشكلة بسيطة


لدي JComboBox و فيه 3 خيارات  ( 1 -2- 3 )


المطلوب اذا المستخدم حدد  1 تطلع له صورة بالاسفل


واذا حدد 2 تتغير الصورة الى صورة اخرى وهكذا ....


 


 


هل يوجد event لـ JComboBox يسهل علي عمل ذلك ؟؟


او اي طريقة اخرى ؟؟


 


 


 


 


 


في انتظار ردكم ودمتم بحفظ الرحمن


#3

أسعد الله اوقاتكم ..


 


 


كنت افكر بانه لما يحدد المستخدم الاسم اضع فوق الصوة القديمة صورة جديده .. لكن للاسف فكرة سيئة


 


 


 


هذي محاولتي  :


import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;


public class NewClass extends JFrame {


    String[] listOfName = {"ali", "ahmad", "omar"};

    JComboBox list = new JComboBox(listOfName);

    JPanel p1 = new JPanel();

    ImageIcon image = new ImageIcon("src/java.jpg");

    ImageIcon image2 = new ImageIcon("src/reseve.png");

    JButton jbtOK = new JButton("OK");


    JLabel imagelabel = new JLabel(image);

    JLabel imagelabel2 = new JLabel(image2);


    NewClass() {


        p1.add(list );

        add(p1 , BorderLayout.NORTH);

        add(imagelabel , BorderLayout.CENTER);

        add(jbtOK ,BorderLayout.SOUTH);

        jbtOK.addActionListener(new ActionListener() {


            @Override

            public void actionPerformed(ActionEvent e) {

               String choose = listOfName[list.getSelectedIndex()];

               if(choose.equals("ali"))

               add(imagelabel , BorderLayout.CENTER);

               else if (choose.equals("ahmad"))

               add(imagelabel2 , BorderLayout.CENTER);

               else

                   JOptionPane.showMessageDialog(null, "Not Yet !!");


            }

        });


    }


    public static void main(String[] args) {

        NewClass frame = new NewClass();

        frame.setSize(250, 350);

        frame.setLocationRelativeTo(null);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame.setVisible(true);

    }


}

في انتظار توجيهاتكم !!


#4
  1. قم بإنشاء JPanel و أضف الصورة إليه (الـ JLabel غير مناسب في هذه الحالة)
  2. لا داعي لاستخدام المتغير choose, قم بالتأكد من خلال getSelectedIndex فقط (إذا كانت النتيجة 0 فهذا يعني أن المستخدم اختار العنصر الأول و هكذا ..)
  3. لمراقبة تغيرات الـ items, استخدم الدالة itemStateChanged الموجودة في الواجهة ItemListener.
  4. عند تحقق الشرط قم بحذف محتوى الـ JPanel و أضف إليه الصورة المناسبة.

 

 

تحياتي.

1
#5

حسننا سأعمل ع النقاط اللي ذكرتها ..  شكرا لك ي صديقي :D


#6

فكرة بفكرة اسهل بانه استخدم  JLabel واحد بس في كل مرة اغير الصورة اللي فيه الى الصورة الجديدة 


وزبطت معاي ولله الحمد :D  ,, طبعا استفدت من ملاحظتك رقم 2 و 4 وراح اقراء عن ItemListener


 


 


 


 


وهذا الكود بعد التعديل ..


import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;


public class NewClass extends JFrame {


    String[] listOfName = {"ali", "ahmad", "omar"};

    JComboBox list = new JComboBox(listOfName);

    JPanel p1 = new JPanel();

    ImageIcon image = new ImageIcon("src/java.jpg");

    ImageIcon image2 = new ImageIcon("src/reseve.png");

    ImageIcon image3 = new ImageIcon("src/74138.gif");


    JButton jbtOK = new JButton("OK");


    JLabel jlbIcon = new JLabel(image);




    NewClass() {


        p1.add(list );

       add(p1 , BorderLayout.NORTH);

       add(jlbIcon , BorderLayout.CENTER);

        add(jbtOK ,BorderLayout.SOUTH);

        jbtOK.addActionListener(new ActionListener() {


            @Override

            public void actionPerformed(ActionEvent e) {

                if(list.getSelectedIndex() == 0)

                jlbIcon.setIcon(image);

                else if(list.getSelectedIndex() == 1)

                jlbIcon.setIcon(image2);

                else

                jlbIcon.setIcon(image3);





            }

        });


    }


    public static void main(String[] args) {

        NewClass frame = new NewClass();

        frame.setSize(250, 350);

        frame.setLocationRelativeTo(null);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame.setVisible(true);

    }


}

يعطيكك العافية ي غالي


 


دمتم لمن تحب


مواضيع مشابهة