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

[Java GUI 範例] JComboBox 可編輯下拉框日期格式化演示

     編輯:Java 相關知識

程式功能

使用 JComboBox 讓使用者選擇或輸入日期格式模式,即時顯示格式化後的當前日期時間。支援預設模式下拉選單與自由輸入,錯誤模式以紅字提示。

核心代碼

public class ComboBoxDemo extends JPanel implements ActionListener {
    private JLabel result;
    private String currentPattern;

    public ComboBoxDemo() {
        String[] patterns = {
            "dd MMMMM yyyy", "dd.MM.yy", "MM/dd/yy",
            "yyyy.MM.dd G 'at' hh:mm:ss z", "EEE, MMM d, ''yy",
            "h:mm a", "H:mm:ss:SSS", "K:mm a,z", "yyyy.MMMMM.dd GGG hh:mm aaa"
        };
        currentPattern = patterns[0];

        JComboBox patternList = new JComboBox(patterns);
        patternList.setEditable(true); // 關鍵:允許編輯
        patternList.addActionListener(this);

        result = new JLabel(" ");
        result.setBorder(BorderFactory.createCompoundBorder(
            BorderFactory.createLineBorder(Color.black),
            BorderFactory.createEmptyBorder(5,5,5,5)));

        // 版面配置略...
        reformat();
    }

    public void actionPerformed(ActionEvent e) {
        JComboBox cb = (JComboBox) e.getSource();
        currentPattern = (String) cb.getSelectedItem();
        reformat();
    }

    public void reformat() {
        Date today = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat(currentPattern);
        try {
            result.setForeground(Color.black);
            result.setText(formatter.format(today));
        } catch (IllegalArgumentException iae) {
            result.setForeground(Color.red);
            result.setText("Error: " + iae.getMessage());
        }
    }
    // main 方法啟動視窗...
}

關鍵點

  • setEditable(true) 使 JComboBox 變為可編輯下拉框,使用者可輸入任意模式字串。
  • ActionListener 捕獲選擇/輸入確認事件(Enter 或選擇項目)。
  • SimpleDateFormat 解析模式,捕獲 IllegalArgumentException 友善提示格式錯誤。
  • 使用 BoxLayout 垂直堆疊元件,BorderFactory 美化結果標籤邊框。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved