কম্পিউটার

কিভাবে আমরা জাভাতে স্বয়ংক্রিয়-সম্পূর্ণ JComboBox বাস্তবায়ন করতে পারি?


A 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. কিভাবে আমরা জাভাতে একটি স্ক্রোলযোগ্য JPanel বাস্তবায়ন করতে পারি?

  2. কিভাবে আমরা জাভাতে একটি JPanel এর paintComponent() পদ্ধতি প্রয়োগ করতে পারি?

  3. কিভাবে আমরা জাভাতে একটি JToggleButton বাস্তবায়ন করতে পারি?

  4. কিভাবে আমরা জাভাতে JWindow ব্যবহার করে একটি স্প্ল্যাশ স্ক্রিন বাস্তবায়ন করতে পারি?