Swingexamples-creating-masked-textfield
提供:Dev Guides
Swingの例-マスクされたTextFieldを作成する
次の例は、スイングベースのアプリケーションでマスクされたテキストフィールドを作成および表示する方法を示しています。
次の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つ以上の数字を入力することはできません。 以下は、キャラクターを制御するパターンのリストです。
Sr. No. | Character & Description |
---|---|
1 |
# ** 任意の数字。 |
2 |
'' 特殊文字をエスケープするエスケープ文字。 |
3 |
U 任意のキャラクター。 大文字に変換されます。 |
4 |
L 任意のキャラクター。 小文字に変換されます。 |
5 |
A 任意の文字または数字。 |
6 |
? 任意のキャラクター。 |
7 | 何でも。 |
8 |
H 16進文字(0-9、a-fまたはA-F)。 |
link:/cgi-bin/printpage.cgi [__印刷]