JFormattedTextField
小数点なしで通貨形式を受け入れるようにコーディングするにはどうすればよいですか?
私はどこでも私の答えを探してみました。ここでは、Oracle、Google、および Code Ranch を具体的に説明します。
私の質問: フォーマットされたテキスト フィールドをコーディングして、小数点なしで通貨フォーマットを受け入れるにはどうすればよいですか。テキスト フィールドは、$5 から $10,000,000 までの値を受け入れることができます。必要に応じて「、」を含めてほしい。このフィールドは数式には使用されないため、文字列から変換する必要はありません。
これが私が使用しようとしているコードです。この形式では、書式設定されたテキスト フィールドに数字をまったく入力できません。
buildInfo メソッド
//The buildInfo method will build the info panel
private void buildInfo()
{
info = new JPanel();
GridLayout gl = new GridLayout (3,1);
info.setLayout (gl);
//Create panel, label, and text area for pledgers name
p1 = new JPanel();
p1.setLayout(new FlowLayout(FlowLayout.LEFT));
label1 = new JLabel ("Pledger's Name: ");
p1.add (label1);
text1 = new JTextField (20);
p1.add (text1);
//Create panel, label, and text area for pledge amount
p2 = new JPanel();
p2.setLayout(new FlowLayout(FlowLayout.LEFT));
label2 = new JLabel ("Pledged Amount: ");
p2.add (label2);
NumberFormat amount = NumberFormat.getCurrencyInstance(Locale.US);
amount.setMaximumFractionDigits(0);
NumberFormatter pAmount = new NumberFormatter(amount);
pAmount.setMinimum(5.0);
pAmount.setMaximum(10000000.0);
pAmount.setAllowsInvalid(false);
text2 = new JFormattedTextField (pAmount);
text2.setColumns(12);
p2.add (text2);
//Create panel, label, and text area for charity being pledged
p3 = new JPanel();
p3.setLayout(new FlowLayout(FlowLayout.LEFT));
label3 = new JLabel ("Charity Pledged To:");
p3.add (label3);
text3 = new JTextField (20);
p3.add (text3);
//Add panels to main panel
add(p1);
add(p2);
add(p3);
}