首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java Swing JComboBox 下拉選單實作教學

     編輯:Java 相關知識

Java Swing JComboBox 基本應用範例

在 Java Swing 開發中,JComboBox 是常用的下拉選單元件,允許使用者從預設選項中選擇單一項目。本文提供一個完整的 Applet 範例,示範如何建立下拉選單、監聽選項變更事件,並動態切換顯示的圖片。

完整程式碼範例

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

public class ComboBoxDemo extends JApplet implements ItemListener {
    JLabel imageLabel;
    ImageIcon[] icons = new ImageIcon[3];

    public void init() {
        Container contentPane = getContentPane();
        contentPane.setLayout(new FlowLayout());

        // 建立下拉選單並加入選項
        JComboBox comboBox = new JComboBox<>();
        comboBox.addItem("6");
        comboBox.addItem("7");
        comboBox.addItem("8");
        comboBox.addItemListener(this);
        contentPane.add(comboBox);

        // 預設顯示第一張圖片
        imageLabel = new JLabel(new ImageIcon("D:/data/Images/6.gif"));
        contentPane.add(imageLabel);

        // 預載圖片資源(建議在實際專案中使用 getResourceAsStream)
        for (int i = 0; i < 3; i++) {
            icons[i] = new ImageIcon("D:/data/Images/" + (6 + i) + ".gif");
        }
    }

    @Override
    public void itemStateChanged(ItemEvent e) {
        if (e.getStateChange() == ItemEvent.SELECTED) {
            String selected = (String) e.getItem();
            int index = Integer.parseInt(selected) - 6;
            if (index >= 0 && index < icons.length) {
                imageLabel.setIcon(icons[index]);
            }
        }
    }
}

關鍵點解析

  • ItemListener 介面:必須實作 itemStateChanged 方法來處理選項變更事件。
  • getStateChange() == ItemEvent.SELECTED:確保只在使用者真正選取新項目時觸發,避免取消選取時也執行邏輯。
  • 圖片預載:範例中在 init() 預先載入所有圖片至陣列,避免每次切換時重複讀取磁碟造成延遲。
  • 路徑處理:實際部署時建議使用 Class.getResource() 取得資源路徑,而非硬式編碼絕對路徑。

進階應用提示

若需在 JFrame 中使用,只需將 JApplet 改為 JFrame,並在 main 方法中建立視窗實例。此外,JComboBox 也支援自訂渲染器,可顯示圖文混合的複雜選項,適合更豐富的 UI 需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved