

No.2ベストアンサー
- 回答日時:
Javaは1.4以降をお使いですか? でしたら、JTextFieldを継承した「JFormattedTextField」クラスを使うのがよろしいかと。
これはフォーマットされたテキストを表示するためのフィールドです。だいたい、以下の2つの機能を設定しておけばお望みのものができると思います。・フォーマッタ
これは、java.textのDecimalFormatterやDateFormatterなどのFormaterクラスか、あるいはjavax.swing.textのMaskFormatterなどを使います。これらのクラスで表示フォーマットを用意し、これをJFormattedTextField作成時に引数で渡します。
・ベリファイア
入力データのベリファイを行うには、InputVerifier継承クラスを用意し、JFormattedTextFieldにsetInputVerifierで設定します。このInputVerifierクラスにはverifyメソッドを用意し、ここで値のベリファイを行ないます。
例えば、10桁の整数+2桁の小数を許可する入力フィールドだと、こんな感じになります。
// import java.text.*; を用意しておく
// JFormattedTextFieldは以下のように作成設定する
DecimalFormat df = new DecimalFormat("##########.00");
final JFormattedTextField field1 = new JFormattedTextField(df);
field1.setInputVerifier(new MyVerifier());
// ベリファイアは内部クラスで以下のように定義
static class MyVerifier extends InputVerifier{
public boolean verify(JComponent input){
boolean flg = true;
JFormattedTextField f = (JFormattedTextField)input;
String s = f.getText();
if (s.length() > 13){
flg = false;
f.setText("0000000000.00");
}
return flg;
}
}
10桁の整数以内だと.00という形で小数点以下2桁まで表示します。その桁を超えると、とりあえず"0000000000.00"に戻るようにしてあります。
フォーマッタとベリファイアについては、JavaDoc等で調べてみるとよいでしょう。
参考URL:http://java.sun.com/j2se/1.4/ja/docs/ja/api/inde …
No.1
- 回答日時:
swingには疎いのですが、参考URLが参考になれば。
フォーカスが外れたときの処理は
FocusListener
を実装すればよろしいかと。
参考URL:http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.ph …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
委譲って何ですか?
-
(vba)他のアプリケーションの右...
-
デバッグ時に「Source not found」
-
VB DLLプロジェクトについて
-
なぜインタフェースを使うのか?
-
「継承されたメソッドの可視性...
-
JavaのimplementsをC言語で例え...
-
「タイプ初期化子が例外をスロ...
-
エクセルVBAで、条件に一致する...
-
中学のクラス数
-
0歳児の指しゃぶりに関して
-
スーパークラスからサブクラス...
-
変数名の付け方
-
標準モジュールとクラスモジュ...
-
関数内の変数に<summary>コメン...
-
僕の出身中学校は200人同級生が...
-
引数で日付を2つ与え、その間の...
-
UMLのクラス図はmain()も含むん...
-
エクセルVBAにおけるON TIMEメ...
-
Excel VBA シェイプの原型のサ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
(vba)他のアプリケーションの右...
-
ASP.NETでの共通コードの書き方...
-
オーバーライドとラッパーの違い
-
「継承されたメソッドの可視性...
-
C# 「データが失なわれる可能性...
-
メソッドの引数にクラス名を渡す
-
ゲッターを使わないで変数にア...
-
C#からDLLを呼びたいのですが・...
-
c++でのヘッダーファイルの循環...
-
interface,extend,implementの...
-
抽象クラスをJUNITでテストする...
-
Javaのインスタンス化の構文の...
-
【C#】クラスのコンストラクタ...
-
Excel vbaのプログラムでガンマ...
-
VB DLLプロジェクトについて
-
単体テストのテストケースにて...
-
デバッグ時に「Source not found」
-
「ラッパークラス」の存在意義...
-
Commons-Discovery.jarとは?
-
Ftpでの帯域制限の設定方法につ...
おすすめ情報