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

;كيفية البحث داخل الJComboBox

بدأه elwaly في 13 أغسطس 2010 · 6 رد · 716 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

كيف أبحث داخل الكومبوبوكس بحيث اكتب حرف الف يعرض لى كل الذى يبدأ بألف

ثم اكتب باء يعرض كل ما يبدأ بألف باء وهكذا

#2

سوالك غير واضح

لكن اذا كنت ترد عندما تضغط على حرف مثلا M

يظهر لك اول كلمه بحرف الـ m

فهذا ييكون طبيعى مع ان شاء الـ Combo box object

جرب الكود دا كدا

SearchInCombox.java

package Test;

/**
 *
 * @author Mahmoud Mahrous
 */
public class SearchInCombox extends javax.swing.JFrame {

    /** Creates new form SearchInCombox */
    public SearchInCombox() {
        initComponents();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        comboBox = new javax.swing.JComboBox();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        comboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4", "Mahmoud", "mahrous", "kelany", "ali", "sa3id" }));

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(comboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 206, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(22, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(comboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new SearchInCombox().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    private javax.swing.JComboBox comboBox;
    // End of variables declaration
}

ودوس مثلا m او s او k

هتلاقى اللى بيتم اختياره هو اول كلمه تبدا بالحرف الذى تم كتاتبه

او انت عارف الكلمه الموجوده اكتبها صح حروفها ورا بعض بدون اخطاء وهتلاقى التى تم اختيارها هى الكلمه التى انت كتبتها

جرب ان كان كذلك ابلغنا او لم يكن ذلك قصدك وضح قصدك مره اخرى

سلام عليكم

Software Developer
Mahmoudkelany.com


 

#3

جزاك الله خيرا على الرد

لكن ليس هذا قصدى أن يكون الJComboBox Editable استطيع الكتابة فيها واثناء الكتابة يظهر ما ابحث عنه

فمثلا كتبت m تظهر القائمة وفيها كل ما يبدأ بحرف m واذا أتبعت ال m بحرف مثلا a تظهر القائمة تحمل كل ما يبدأ بحرفى ma وهكذا

هل اتضح قصدى بارك الله فيك

#4
elwaly كتب:

جزاك الله خيرا على الرد

لكن ليس هذا قصدى أن يكون الJComboBox Editable استطيع الكتابة فيها واثناء الكتابة يظهر ما ابحث عنه

فمثلا كتبت m تظهر القائمة وفيها كل ما يبدأ بحرف m واذا أتبعت ال m بحرف مثلا a تظهر القائمة تحمل كل ما يبدأ بحرفى ma وهكذا

هل اتضح قصدى بارك الله فيك

هذا يشبه انك تريد ان تعمل مثل الـ auto complete

لكن اعتقد انها ليس ليها ارتباط بالـ combo box

ننتظر اهل الخبره فى هذا الموضووع ليردوا عليك ويفيدونا واستفيد من الردود ان شاء الله متابع معاك باذن الله

سلام عليكم

Software Developer
Mahmoudkelany.com


 

#5

السلام عليكم

اخى انت تريد استخدام خاصية ال auto complete مثل الموجودة فى #C او VB

ولكنها ليست موجودة فى الجافا سواء ل Combobox او Textfield

يمكنك استبدالها بفكرة جميلة

وهى ان تقوم بانشاء JTable مكون من عمود واحد وفى اعلى الجدول انشئ حقل JTextField

وقم بربطه بفلتر على الجدول على عمود الاسم

وعند كتابة اى حرف فى الحقل سيتم حذف كل الاسماء من الجدول ماعدا الاسماء التى تحتوى على هذا الحرف

طبعا حذف مؤقت وسيظهر لك هذا بعد مسح الحرف من الحقل مرة اخرى

هذه مجرد فكرة ولك حرية الاختيار

وربما يأتى من يقترح علينا حل افضل

تقبل مرورى

تحياتى


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#6

استخدم خاصية البحث واطلع على المواضيع المثبتة

/index.php?showtopic=206867

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#7

السلام عليكم وشهر كريم ايها الأخوة

انا مع الأخ Oracle_java في اقتراحة بإستخدام JTable مع Filter . فلقد واجهت نفس الحاجة تقريبا وافادتني حكاية الفلتر.

هناك شيء انا غير متأكد منة ولكن جربة اذا اردت على اي حال:

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

لم اجربها بنفسي ولكن رأيت موظف في قسم التسجيل في كلية من الكليات يقوم بهذة الحركة ليصل الى اسم القسم بسرعة في برنامج رصد الدرجات ( لم اعرف انها ممكنة رغم اني انا الذي صممت البرنامج huh.gif) .

اعتقد ان هذة الميزة من خصائص الكائن JComboBox ولا دخل للمبرمج بها على ما اظن.

بحثت عن قلمي البارحة فلم أجدة!

...............

لم أجد سوى لوحة المفاتيح هذة

.............

تتطلع إلي بشفقة..

.............

أكاد أسمعها .. تقول (ألم يسمع بGoogle ؟!؟؟)

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