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

JavaでJComboBoxアイテムに境界線を設定するにはどうすればよいですか?


JComboBox JComponentのサブクラスです クラスであり、textフィールドの組み合わせです。 およびドロップダウンリスト ユーザーはそこから値を選択できます。 JComboBoxは、 ActionListener、ChangeListenerを生成できます およびItemListener ユーザーがコンボボックスでアクションを実行するときのインターフェイス。 JComboBox をレンダリングすることで、JComboBoxのアイテムに境界線を設定できます。 DefaultListCellRendererを拡張します クラスであり、 getListCellRendererComponent()をオーバーライドする必要があります メソッド。

構文
public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus)
import java.awt.*;
import javax.swing.*;
public class JComboBoxTest extends JFrame {
   public JComboBoxTest() {
      setTitle("JComboBox Test");
      String[] cities = {"Hyderabad", "Mumbai", "Pune", "Bangalore", "Chennai", "Coimbatore"};
      JComboBox jcb = new JComboBox(cities);
      jcb.setRenderer(new CustomComboBoxRenderer());
      add(jcb, BorderLayout.NORTH);
      setSize(400, 300);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   class CustomComboBoxRenderer extends DefaultListCellRenderer {
      public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
         JLabel lbl = (JLabel)super.getListCellRendererComponent(list, value, index, isSelected,  cellHasFocus);
         lbl.setBorder(BorderFactory.createEmptyBorder(7, 7, 7, 7));
         lbl.setBackground(Color.lightGray);
         return lbl;
      }
   }
   public static void main(String[] args) {
      new JComboBoxTest();
   }
}
出力

JavaでJComboBoxアイテムに境界線を設定するにはどうすればよいですか?


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

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

  2. JavaでBorderFactoryを使用してさまざまな境界線を実装するにはどうすればよいですか?

    BorderFactory ファクトリです Javaでさまざまなタイプの境界線を提供するクラス。 境界線の種類 BevelBorder :この境界線は隆起を描画します または下げた 斜角のエッジ。 EmptyBorder :描画は行いませんが、スペースを取ります。 EtchedBorder :下がったエッチングボーダー 長方形と隆起したエッチングされた境界線の外観を与えます 画面の表面のように見えます。 LineBorder :コンポーネントの周りに単純な長方形を描画します。 LineBorderで線の色と幅を指定できます コンストラクター。 Matte