1. 程式人生 > 程式設計 >Java Swing JComboBox下拉列表框的示例程式碼

Java Swing JComboBox下拉列表框的示例程式碼

1. 概述

官方JavaDocsApi: javax.swing.JComboBox

JComboBox,下拉列表框。JComboBox以下列列表的形式展示多個選項,使用者可以從下拉列表中選擇一個值。

其中的選項內容由一個 ComboBoxModel 例項來維護。

如果設定JComboBox為可編輯狀態,除了選擇指定的選項值外,還允許使用者自行輸入值(自行輸入的值索引為-1)。

JComboBox 常用構造方法:

/**
 * 一個 JComboBox 例項維護這一個 ComboBoxModel 例項。
 * ComboBoxModel 例項可以直接建立,也可以通過把 陣列 或 集合 傳遞到 JComboBox 中間接建立。
 * JComboBox 內部建立的 ComboBoxModel 例項是 DefaultComboBoxModel。
 */
JComboBox()

JComboBox(ComboBoxModel model)

JComboBox(Object[] items)

JComboBox(Vector<?> items)

JComboBox 常用方法:

// 設定選中的索引
void setSelectedIndex(int index)

// 獲取當前選中的索引
int getSelectedIndex()

// 獲取當前選中的資料項
Object getSelectedItem()

// 設定選項資料模型
void setModel(ComboBoxModel<?> model)

// 獲取維護選項資料的 ComboBoxModel。
// 再通過 model.getElementAt(int index) 和 model.getSize() 
// 可分別 獲取指定索引的選項資料 和 選項數量。
ComboBoxModel<?> getModel()

// 新增選項選中狀態改變的監聽器
void addItemListener(ItemListener listener)

// 設定下拉列表框是否可編輯,預設不可編輯。
// 如果設定為可編輯,則除了選擇指定的選項值外,還允許使用者自行輸入值(自行輸入的值索引為-1)
void setEditable(boolean flag)

2. 程式碼例項

package com.xiets.swing;

import javax.swing.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

public class Main {

  public static void main(String[] args) {
    JFrame jf = new JFrame("測試視窗");
    jf.setSize(250,250);
    jf.setLocationRelativeTo(null);
    jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    JPanel panel = new JPanel();

    // 新增一個標籤
    JLabel label = new JLabel("水果:");
    panel.add(label);

    // 需要選擇的條目
    String[] listData = new String[]{"香蕉","雪梨","蘋果","荔枝"};

    // 建立一個下拉列表框
    final JComboBox<String> comboBox = new JComboBox<String>(listData);

    // 新增條目選中狀態改變的監聽器
    comboBox.addItemListener(new ItemListener() {
      @Override
      public void itemStateChanged(ItemEvent e) {
        // 只處理選中的狀態
        if (e.getStateChange() == ItemEvent.SELECTED) {
          System.out.println("選中: " + comboBox.getSelectedIndex() + " = " + comboBox.getSelectedItem());
        }
      }
    });

    // 設定預設選中的條目
    comboBox.setSelectedIndex(2);

    // 新增到內容面板
    panel.add(comboBox);

    jf.setContentPane(panel);
    jf.setVisible(true);
  }

}

結果展示:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。