- Swing 程式設計示例
- 示例 - 主頁
- 示例 - 環境設定
- 示例 - 邊框
- 示例 - 按鈕
- 示例 - 複選框
- 示例 - 組合框
- 示例 - 顏色選擇器
- 示例 - 對話方塊
- 示例 - 編輯器窗格
- 示例 - 檔案選擇器
- 示例 - 格式化文字欄位
- 示例 - 框架
- 示例 - 列表
- 示例 - 佈局
- 示例 - 選單
- 示例 - 密碼欄位
- 示例 - 進度條
- 示例 - 滾動窗格
- 示例 - 滑塊
- 示例 - 旋轉控制元件
- 示例 - 表格
- 示例 - 工具欄
- 示例 - 樹
- 有用的 Swing 資源
- Swing - 快速指南
- Swing - 有用的資源
- Swing - 討論
Swing 示例 - 建立掩碼文字欄位
以下示例展示如何建立並顯示基於 Swing 應用程式中的掩碼文字欄位。
我們正在使用以下 API。
JFormattedTextField − 建立格式化文字欄位。
MaskFormatter − 建立一個格式化器,僅允許輸入傳遞給 MaskFormatter 的模式中指定的角色。
示例
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.LayoutManager;
import java.text.ParseException;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.text.MaskFormatter;
public class SwingTester {
public static void main(String[] args) {
createWindow();
}
private static void createWindow() {
JFrame frame = new JFrame("Swing Tester");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
createUI(frame);
frame.setSize(560, 200);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private static void createUI(final JFrame frame){
JPanel panel = new JPanel();
LayoutManager layout = new FlowLayout();
panel.setLayout(layout);
JLabel zipLabel = new JLabel("Zip Code");
JFormattedTextField zipTextField = null;
try {
zipTextField = new JFormattedTextField(
new MaskFormatter("#####"));
zipTextField.setColumns(5);
} catch (ParseException e) {
e.printStackTrace();
}
zipLabel.setLabelFor(zipTextField);
panel.add(zipLabel);
panel.add(zipTextField);
frame.getContentPane().add(panel, BorderLayout.CENTER);
}
}
輸出
在這裡,我們使用“#####”作為模式,表明文字欄位中僅允許數字,不能輸入其他字元。而且,我們不能輸入超過 5 個數字。以下是控制字元的模式列表。
| 序號 | 字元和描述 |
|---|---|
| 1 | # 任意數字。 |
| 2 | '
跳脫字元,轉義特殊格式化字元。 |
| 3 | U
任意字元。將轉換成大寫。 |
| 4 | L
任意字元。將轉換成小寫。 |
| 5 | A
任意字元或數字。 |
| 6 | ?
任意字元。 |
| 7 | *
任意內容。 |
| 8 | H
任意十六進位制字元 (0-9、a-f 或 A-F)。 |
swingexamples_formatted_textfields.htm
廣告