JFormatted textfield pada Swing biasanya digunakan untuk menampung input yang memiliki pattern atau tipe data tertentu yang tidak hanya sekedar teks, misalkan data yang berupa tanggal, currency, atau angka. Saya pun sendiri menggunakan JFormatted Textfield sebagai input karakter yang berupa angka, utamanya yang mengandung desimal dan bernilai ribuan. Nah, sayangnya bagi kita yang tinggal di Indonesia standar separator desimal dan ribuan yang digunakan mengikuti standar Inggris, dimana untuk pemisah ribuan menggunakan koma (“,000”) sedankan decimal menggunakan titik (“.”), untuk lebih lengkap nya daftar negara yang menggunakan format demikian bisa dilihat di Wikipedia. Nah, bagaimana sebenarnya cara mudah agar kita bisa mengaturnya menjadi format (“.000”) untuk ribuan dan (“,00”) untuk tanda desimal, cukup mudah sebenarnya, saya akan jelaskan langkahnya pada Netbeans IDE
Sebelumnya pastikan bentuk format angka yang akan kita gunakan, pada Properties->tab formatterFactory pilih format Number yang digunakan
kemudian pada tab Code->Custom Creation Code kita gunakan parameter dari class Number Format dengan instance dari class Locale seperti ini
new JFormattedTextField(NumberFormat.getInstance(Locale.GERMANY));
Loh, kenapa kita menggunakan Locale.GERMANY? kok tiba-tiba jadi negara Jerman bukan negara Indonesia aja? hehe
Seperti yang udah dijelasin di atas dari referensi Wikipedia tadi, ada daftar negara2 yang menggunakan format desimal yang mirip dengan negara kita, salah satunya negara Jerman, Kalo ngga salah sih negara yang menggunakan format yang sama dan ada di class Locale ada Italy juga,mungkin bisa dipake juga. .
Jadi seperti itu.. ngga terlalu susah kan ya.. selamat mencoba π
Thanks sob infox. ..
mas kalau mau buat untuk tanggal bagaimana ya? tp sebelum input tanda garis miringnya sudah keluar dl misal : (##/##/####)
trims sebelumnya…
maksudnya menggunakan class MaskFormatter? Cara ini sedikit tricky
jFormat.setFormatterFactory(new DefaultFormatterFactory(new DateFormatter(new SimpleDateFormat(“dd/mm/yyyy”))));
try {
MaskFormatter mf = new MaskFormatter(“##/##/####” );
mf.install(jFormat);
} catch (ParseException ex) {
Logger.getLogger(SelectDBFReader.class.getName()).log(Level.SEVERE, null, ex);
}
Kalo sering liat2 stackoverflow, cara ini ngga di rekomendasikan soalnya bukan threadsafe, klo saya sendiri sih lebih suka pake library jCalendar, coba googling ya π
kalau ada rupiahnya gmn ea gan ? :O
gan kok error pada class locale nya