TOP →
Java →
Swing →
JFormattedTextField → This Page
JFormattedTextField@Swing サンプル01
概要
Java -
Swing -
JFormattedTextField のサンプルです。
・数値系[NumberFormat]
解説
入力した数値を整形して表示します。
数値以外の文字列や、フォーマット外の数値を入力すると、入力前の値に自動で戻ります。
また、初期値は setText() でセットすると、フォーマットが反映されないまま表示されてしまうので、
setValue() を使って初期値をセットします。
サンプルイメージ
サンプルソース
import java.awt.Dimension;
import java.awt.Font;
import java.text.NumberFormat;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
* JFormattedTextField サンプル01
* ・数値系[NumberFormat]
*
* @author みっちー
*/
public class JFormattedTextField01 extends JFrame {
private static final long serialVersionUID = 1L;
/**
* 開始メソッド
*
* @param args パラメータ
*/
public static void main(String[] args) {
JFormattedTextField01 frame = new JFormattedTextField01();
// 閉じるボタンをクリックされた場合の動作を設定
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// ウインドウのタイトルを設定
frame.setTitle("JFormattedTextField サンプル01");
// フレームの X座標、Y座標、幅、高さを設定
frame.setBounds(100, 200, 450, 250);
// フレームを表示(これをしないと透明のフレームが立ち上がってしまう)
frame.setVisible(true);
}
/**
* コンストラクタ
*/
public JFormattedTextField01() {
// パネルを作成
JPanel panelBase = new JPanel();
// 初期値
double d = 1234567890.123456789d;
// --------------------------------------------------
// フォーマットを設定
// --------------------------------------------------
// 初期設定
NumberFormat nf1 = NumberFormat.getNumberInstance();
// 最大小数桁数9
NumberFormat nf2 = NumberFormat.getNumberInstance();
nf2.setMaximumFractionDigits(9);
// 最大小数桁数1
NumberFormat nf3 = NumberFormat.getNumberInstance();
nf3.setMaximumFractionDigits(1);
// 最大整数桁数9
NumberFormat nf4 = NumberFormat.getNumberInstance();
nf4.setMaximumIntegerDigits(9);
// 最大整数桁数1
NumberFormat nf5 = NumberFormat.getNumberInstance();
nf5.setMaximumIntegerDigits(1);
// 整数としてのみ解析(小数点以下は無視)
NumberFormat nf6 = NumberFormat.getNumberInstance();
nf6.setParseIntegerOnly(true);
// グループ化の使用を停止(カンマ区切りなど)
NumberFormat nf7 = NumberFormat.getNumberInstance();
nf7.setGroupingUsed(false);
// テキストを作成
JFormattedTextField text1 = new JFormattedTextField(nf1);
JFormattedTextField text2 = new JFormattedTextField(nf2);
JFormattedTextField text3 = new JFormattedTextField(nf3);
JFormattedTextField text4 = new JFormattedTextField(nf4);
JFormattedTextField text5 = new JFormattedTextField(nf5);
JFormattedTextField text6 = new JFormattedTextField(nf6);
JFormattedTextField text7 = new JFormattedTextField(nf7);
// 初期値を設定
// setText() だと初期表示時にフォーマットが評価されないので setValue() を使う
text1.setValue(Double.valueOf(d));
text2.setValue(Double.valueOf(d));
text3.setValue(Double.valueOf(d));
text4.setValue(Double.valueOf(d));
text5.setValue(Double.valueOf(d));
text6.setValue(Double.valueOf(d));
text7.setValue(Double.valueOf(d));
text7.setValue(Double.valueOf(d));
// サイズを設定
text1.setPreferredSize(new Dimension(180, 20));
text2.setPreferredSize(new Dimension(180, 20));
text3.setPreferredSize(new Dimension(180, 20));
text4.setPreferredSize(new Dimension(180, 20));
text5.setPreferredSize(new Dimension(180, 20));
text6.setPreferredSize(new Dimension(180, 20));
text7.setPreferredSize(new Dimension(180, 20));
// フォントの設定
text1.setFont(new Font("MS ゴシック", Font.PLAIN, 16));
text2.setFont(new Font("MS ゴシック", Font.PLAIN, 16));
text3.setFont(new Font("MS ゴシック", Font.PLAIN, 16));
text4.setFont(new Font("MS ゴシック", Font.PLAIN, 16));
text5.setFont(new Font("MS ゴシック", Font.PLAIN, 16));
text6.setFont(new Font("MS ゴシック", Font.PLAIN, 16));
text7.setFont(new Font("MS ゴシック", Font.PLAIN, 16));
// テキストを追加
panelBase.add(text1);
panelBase.add(text2);
panelBase.add(text3);
panelBase.add(text4);
panelBase.add(text5);
panelBase.add(text6);
panelBase.add(text7);
// パネルを追加
getContentPane().add(panelBase);
}
}
サンプルソースのダウンロード
ソースのダウンロード(Eclipse用のプロジェクトファイルも同梱)
更新履歴
2016/05/13 Windows 8.1 + Java 7 環境で全体を見直し
2007/12/27 新規作成
TOP →
Java →
Swing →
JFormattedTextField → This Page