Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでJComboBoxのアイテムを並べ替えるにはどうすればよいですか?


JComboBox JComponentのサブクラスです クラスであり、テキストフィールドの組み合わせです。 およびドロップダウンリスト ユーザーはそこから値を選択できます。 JComboBox ActionListener、ChangeListener、を生成できます およびItemListener ユーザーがコンボボックスでアクションを実行するときのインターフェイス。デフォルトでは、JComboBoxはアイテムの並べ替えをサポートしていません。 DefaultComboBoxModel を拡張することで、コードをカスタマイズできます。 クラス。

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class JComboBoxSorterTest extends JFrame {
   private JComboBox comboBox;
   private JTextField textField;
   public JComboBoxSorterTest() {
      setTitle("JComboBoxSorter Test");
      setLayout(new FlowLayout());
      textField = new JTextField(10);
      textField.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            comboBox.addItem(textField.getText());
            textField.setText("");
            comboBox.showPopup();
         }
      });
      String[] items = {"raja", "archana", "vineet", "krishna", "adithya"};
      SortedComboBoxModel model = new SortedComboBoxModel(items);
      comboBox = new JComboBox(model);
      comboBox.setPrototypeDisplayValue("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
      Box box1 = Box.createHorizontalBox();
      box1.add(new JLabel("Enter a name and hit enter "));
      box1.add(textField);
      Box box2 = Box.createHorizontalBox();
      box2.add(comboBox);
      add(box1);
      add(box2);
      setSize(375, 250);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   // Customize the code for sorting of items in the JComboBox
   private class SortedComboBoxModel extends DefaultComboBoxModel {
      public SortedComboBoxModel() {
         super();
      }
      public SortedComboBoxModel(Object[] items) {
         Arrays.sort(items);
         int size = items.length;
         for (int i = 0; i < size; i++) {
            super.addElement(items[i]);
         }
         setSelectedItem(items[0]);
      }
      public SortedComboBoxModel(Vector items) {
         Collections.sort(items);
         int size = items.size();
         for (int i = 0; i < size; i++) {
            super.addElement(items.elementAt(i));
         }
         setSelectedItem(items.elementAt(0));
      }
      public void addElement(Object element) {
         insertElementAt(element, 0);
      }
      public void insertElementAt(Object element, int index) {
         int size = getSize();
         for (index = 0; index < size; index++) {
            Comparable c = (Comparable) getElementAt(index);
            if (c.compareTo(element) > 0) {
               break;
            }
         }
         super.insertElementAt(element, index);
      }
   }
   public static void main(String[] args) {
      new JComboBoxSorterTest();
   }
}

出力

JavaでJComboBoxのアイテムを並べ替えるにはどうすればよいですか?


  1. JButtonのHTMLテキストをJavaで実装するにはどうすればよいですか?

    JButton AbstractButtonのサブクラスです これは、JavaSwing階層の重要なコンポーネントです。 JButton 主にログインベースのアプリケーションで使用できます。 JButton ActionListenerを生成できます 押すかクリックするときのインターフェース ボタン。 JButtonにはテキストがあります またはアイコン またはテキストとアイコンの両方 、太字の斜体テキストを実装することもできます HTMLを使用する タグ。 例 import java.awt.*; import javax.swing.*; public class JBut

  2. 編集可能なJComboBoxをJavaで実装するにはどうすればよいですか?

    JComboBox JComboBox JComponentを拡張できます クラスであり、テキストフィールドの組み合わせです。 およびドロップダウンリスト ユーザーはそこから値を選択できます。 コントロールのテキストフィールド部分が編集可能な場合、ユーザーはフィールドに値を入力するか、ドロップダウンリストから取得した値を編集できます。 デフォルトでは、ユーザーは JComboBoxのテキストフィールド部分のデータを編集できません。 。ユーザーがテキストフィールドを編集できるようにする場合は、 setEditable(true)を呼び出します。 メソッド。 JComboBox