Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

हम जावा में स्वत:पूर्ण JComboBox कैसे कार्यान्वित कर सकते हैं?


एक JComboBox JComponent . का उपवर्ग है वर्ग और यह एक पाठ क्षेत्र . का संयोजन है और एक ड्रॉप-डाउन सूची जिससे उपयोगकर्ता कोई मान चुन सकता है . JComboBox एक ActionListener, ChangeListener, . उत्पन्न कर सकता है और आइटम लिस्टनर इंटरफेस जब उपयोगकर्ता कॉम्बो बॉक्स पर कार्रवाई करता है।

हम JComboBox को स्वतः पूर्ण लागू कर सकते हैं जब उपयोगकर्ता कॉम्बो बॉक्स (AutoCompleteComboBox के अनुकूलन का उपयोग करके कीबोर्ड से इनपुट मान टाइप करता है। ) JComboBox . का विस्तार करके कक्षा।

उदाहरण

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.plaf.basic.*;
public class AutoCompleteComboBoxTest extends JFrame {
   private JComboBox comboBox;
   public AutoCompleteComboBoxTest() {
      setTitle("AutoCompleteComboBox");
      String[] countries = new String[] {"india", "australia", "newzealand", "england", "germany",
"france", "ireland", "southafrica", "bangladesh", "holland", "america"};
      comboBox = new AutoCompleteComboBox(countries);
      add(comboBox, BorderLayout.NORTH);
      setSize(400, 300);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public static void main(String []args) {
      new AutoCompleteComboBoxTest();
   }
}
 // Implementtion of AutoCompleteComboBox
class AutoCompleteComboBox extends JComboBox {
   public int caretPos = 0;
   public JTextField tfield = null;
   public AutoCompleteComboBox(final Object countries[]) {
      super(countries);
      setEditor(new BasicComboBoxEditor());
      setEditable(true);
   }
   public void setSelectedIndex(int index) {
      super.setSelectedIndex(index);
      tfield.setText(getItemAt(index).toString());
      tfield.setSelectionEnd(caretPos + tfield.getText().length());
      tfield.moveCaretPosition(caretPos);
   }
   public void setEditor(ComboBoxEditor editor) {
      super.setEditor(editor);
      if(editor.getEditorComponent() instanceof JTextField) {
         tfield = (JTextField) editor.getEditorComponent();
         tfield.addKeyListener(new KeyAdapter() {
            public void keyReleased(KeyEvent ke) {
               char key = ke.getKeyChar();
               if (!(Character.isLetterOrDigit(key) || Character.isSpaceChar(key) )) return;
               caretPos = tfield.getCaretPosition();
               String text="";
               try {
                  text = tfield.getText(0, caretPos);
               } catch (javax.swing.text.BadLocationException e) {
                  e.printStackTrace();
               }
               for (int i=0; i < getItemCount(); i++) {
                  String element = (String) getItemAt(i);
                  if (element.startsWith(text)) {
                     setSelectedIndex(i);
                     return;
                  }
               }
            }
         });
      }
   }
}

आउटपुट

हम जावा में स्वत:पूर्ण JComboBox कैसे कार्यान्वित कर सकते हैं?


  1. हम जावा में जेपीनल की पेंटकंपोनेंट () विधि को कैसे कार्यान्वित कर सकते हैं?

    A JPanel एक हल्का कंटेनर है और यह एक अदृश्य . है घटक जावा में। JPanel का डिफ़ॉल्ट लेआउट FlowLayout है . JPanel बनने के बाद, अन्य घटकों को JPanel . में जोड़ा जा सकता है इसके जोड़ें () . पर कॉल करके वस्तु विधि कंटेनर . से विरासत में मिली है कक्षा। paintComponent() JPanel . पर कुछ आकर्षित करने क

  1. हम जावा में JToggleButton को कैसे कार्यान्वित कर सकते हैं?

    JToggleButton एक JToggleButton सार बटन . का विस्तार है और इसका उपयोग उन बटनों को दर्शाने के लिए किया जा सकता है जिन्हें चालू . पर टॉगल किया जा सकता है और बंद । जब JToggleButton पहली बार दबाया जाता है, यह दबाया रहता है और इसे दूसरी बार दबाने पर ही छोड़ा जा सकता है। एक JToggleButton एक एक्शनइवें

  1. जावा में JWindow का उपयोग करके हम स्प्लैश स्क्रीन को कैसे कार्यान्वित कर सकते हैं?

    एक जेविंडो एक कंटेनर है जिसे उपयोगकर्ता डेस्कटॉप पर कहीं भी प्रदर्शित किया जा सकता है। इसमें टाइटल बार . नहीं है , विंडो प्रबंधन बटन, आदि एक JFrame की तरह। जेविंडो इसमें एक JRootPane . है अपने एकमात्र बाल वर्ग के रूप में। सामग्री फलक JWindow . के किसी भी बच्चे का अभिभावक हो सकता है . एक JFra