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

[Java GUI 範例] JList 下拉列表增刪改完整實作

     編輯:Java 相關知識

程式功能

示範 JList 搭配 DefaultListModel 實現動態增刪元素:文字框輸入名稱點擊「添加」插入至選中項後;選中項點擊「刪除」移除。包含單選模式、滾動面板、按鈕狀態聯動。

核心代碼結構

public class ListDemo extends JPanel implements ListSelectionListener {
    private JList list;
    private DefaultListModel listModel;
    private JButton fireButton; // 刪除
    private JTextField employeeName;

    public ListDemo() {
        // 初始化模型與預設資料
        listModel = new DefaultListModel();
        listModel.addElement("Alan Sommerer"); ...
        list = new JList(listModel);
        list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        list.setSelectedIndex(0);
        list.addListSelectionListener(this);
        list.setVisibleRowCount(5);
        JScrollPane listScrollPane = new JScrollPane(list);

        // 按鈕與事件綁定
        JButton hireButton = new JButton("添加");
        hireButton.addActionListener(new HireListener(hireButton));
        fireButton = new JButton("刪除");
        fireButton.addActionListener(new FireListener());
        // 文本框監聽
        employeeName = new JTextField(10);
        employeeName.addActionListener(new HireListener(hireButton));
        employeeName.getDocument().addDocumentListener(new HireListener(hireButton));

        // 版面配置
        JPanel buttonPane = new JPanel();
        buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.LINE_AXIS));
        buttonPane.add(fireButton); buttonPane.add(Box.createHorizontalStrut(5));
        buttonPane.add(new JSeparator(SwingConstants.VERTICAL));
        buttonPane.add(Box.createHorizontalStrut(5));
        buttonPane.add(employeeName); buttonPane.add(hireButton);

        add(listScrollPane, BorderLayout.CENTER);
        add(buttonPane, BorderLayout.PAGE_END);
    }
    // ... 內部類 FireListener, HireListener 實現增刪邏輯
    // ... valueChanged 實現選中狀態控制刪除按鈕啟用
}

關鍵技術點

  • DefaultListModel:可變列表模型,支援 insertElementAt、remove、contains 等操作。
  • DocumentListener:監聽文本框內容變化,動態啟用/禁用「添加」按鈕。
  • ListSelectionListener:監聽列表選中狀態,控制「刪除」按鈕可用性。
  • 邊界處理:刪除最後一項時自動選中前一項;列表為空時禁用刪除。

執行截面

視窗中央顯示可滾動列表,底部為輸入框與添加/刪除按鈕,操作即時反映於列表。

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