電子書籍の厳選無料作品が豊富!

例えばAccessで年月日を入力するTextBoxを作成したとき、書式の設定をすることで「____/__/__」といった補助が出来たのですが、Javaでは無理でしょうか?

A 回答 (2件)

 4文字目と7文字目を入力したときに強制的にスラッシュが入るようにTextFieldを拡張したクラスを作成し、


実装することになると思います。
以下がその例です。

import java.awt.*;
import java.awt.event.*;

class assistfield extends TextField implements TextListener {

int L;

public assistfield() { super();
addTextListener(this);
};

public void textValueChanged(TextEvent e) {

String s = getText();
int l = s.length();

if (L < l) {

if (((l == 4) || (l == 7)) && (getSelectionStart() == l)) {
setText(s + "/");
setSelectionStart(l + 1);
setSelectionEnd(l + 1);
}

else if (l > 10) {
setText(s.substring(0, 10));
setSelectionStart(10);
setSelectionEnd(10);
};

};

L = l;

};

}

public class dateassist {

public static void main(String args[]) {

Frame MF = new Frame("Date Input Assist");
MF.setSize(320, 100);
MF.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0); };
});
MF.add(new assistfield(), BorderLayout.NORTH);

MF.setVisible(true);

};

}
    • good
    • 0

「年/月/日」の形式で入力したいのなら以下の方法でできます。


(インポート、クラス、メソッド、例外処理の各宣言は省略してあります。)

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //キーボードから入力できるようにする
String str = br.readLine();
Date d = sdf.parse(str); //日付(String)を日付(Date)に変換
System.out.println(d); //Date型としての日付の表示
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!