Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Java > Trouble in entering numbers after decimal points - JFormattedTextField

Reply
Thread Tools

Trouble in entering numbers after decimal points - JFormattedTextField

 
 
kishanthany@gmail.com
Guest
Posts: n/a
 
      06-26-2006
Hey!

I'm having problem with entering numbers after decimal point. I 've set
two numbers after decimal point. when I add first time it's working.
When try to override it takes third number & rounding it off and adding
it.

If I enable override mode enable when I entering number reaches cmmma
(,) with out problem but afterwards it takes next two digits after
decimal point addes with entered number.

I tried my best to solve it. please someone help me to sort out this
problem..

I've added my code here you can test and give me some idea..


import javax.swing.JFrame;
import javax.swing.JPanel;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import javax.swing.text.NumberFormatter;
import javax.swing.text.DefaultFormatterFactory;
import javax.swing.JTextField;
import javax.swing.JFormattedTextField;
import javax.swing.text.DefaultFormatter;
import java.math.BigDecimal;
import java.util.Locale;
import java.text.*;
import javax.swing.text.MaskFormatter;

public class NumberCellEditor{
DecimalFormat numberFormat;
JFrame frame;
JFormattedTextField text,text1;
JPanel panel;

public void create(){

text=new JFormattedTextField();
text1=new JFormattedTextField();

numberFormat = (DecimalFormat) NumberFormat.getNumberInstance();

numberFormat.setDecimalSeparatorAlwaysShown(true);

numberFormat.setMinimumFractionDigits(2);

NumberFormatter numFormatter = new
NumberFormatter(numberFormat);

numFormatter.setAllowsInvalid(false);
numFormatter.setFormat(numberFormat);
//numFormatter.setOverwriteMode(true);


text.setValue(new Float(0.0F));
text.setFormatterFactory(new
DefaultFormatterFactory(numFormatter));
text.setHorizontalAlignment(JTextField.TRAILING);

}

public void createComp(){
frame=new JFrame(" TEST 2");

panel=new JPanel();
panel.setLayout(null);
create();
text.setBounds(100,100,100,30);
text1.setBounds(100,200,100,30);
panel.add(text);
panel.add(text1);


frame.getContentPane().add(panel);
frame.setSize(300,300);
frame.setVisible(true);

}
public static void main (String [] args){
NumberCellEditor n=new NumberCellEditor();
n.createComp();
}
}

 
Reply With Quote
 
 
 
 
hiwa
Guest
Posts: n/a
 
      06-26-2006
のメッセージ:

> Hey!
>
> I'm having problem with entering numbers after decimal point. I 've set
> two numbers after decimal point. when I add first time it's working.
> When try to override it takes third number & rounding it off and adding
> it.
>
> If I enable override mode enable when I entering number reaches cmmma
> (,) with out problem but afterwards it takes next two digits after
> decimal point addes with entered number.
>
> I tried my best to solve it. please someone help me to sort out this
> problem..
>
> I've added my code here you can test and give me some idea..
>
>
> import javax.swing.JFrame;
> import javax.swing.JPanel;
> import java.text.DecimalFormat;
> import java.text.NumberFormat;
> import javax.swing.text.NumberFormatter;
> import javax.swing.text.DefaultFormatterFactory;
> import javax.swing.JTextField;
> import javax.swing.JFormattedTextField;
> import javax.swing.text.DefaultFormatter;
> import java.math.BigDecimal;
> import java.util.Locale;
> import java.text.*;
> import javax.swing.text.MaskFormatter;
>
> public class NumberCellEditor{
> DecimalFormat numberFormat;
> JFrame frame;
> JFormattedTextField text,text1;
> JPanel panel;
>
> public void create(){
>
> text=new JFormattedTextField();
> text1=new JFormattedTextField();
>
> numberFormat = (DecimalFormat) NumberFormat.getNumberInstance();
>
> numberFormat.setDecimalSeparatorAlwaysShown(true);
>
> numberFormat.setMinimumFractionDigits(2);
>
> NumberFormatter numFormatter = new
> NumberFormatter(numberFormat);
>
> numFormatter.setAllowsInvalid(false);
> numFormatter.setFormat(numberFormat);
> //numFormatter.setOverwriteMode(true);
>
>
> text.setValue(new Float(0.0F));
> text.setFormatterFactory(new
> DefaultFormatterFactory(numFormatter));
> text.setHorizontalAlignment(JTextField.TRAILING);
>
> }
>
> public void createComp(){
> frame=new JFrame(" TEST 2");
>
> panel=new JPanel();
> panel.setLayout(null);
> create();
> text.setBounds(100,100,100,30);
> text1.setBounds(100,200,100,30);
> panel.add(text);
> panel.add(text1);
>
>
> frame.getContentPane().add(panel);
> frame.setSize(300,300);
> frame.setVisible(true);
>
> }
> public static void main (String [] args){
> NumberCellEditor n=new NumberCellEditor();
> n.createComp();
> }
> }

The most flexible way would be to use a DocumentFilter.
Sorry I do not have enough time to write an example.

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
ASP.NET FormView Money Data Type Binding Problem with 2 Decimal Points.. Sam ASP .Net 1 02-11-2010 02:22 PM
Working with decimal points Byte Python 8 04-08-2006 05:16 PM
fractions - entering your own numbers in Word? John Computer Information 3 04-29-2004 11:50 PM
Displaying data to 2 decimal points Guy Hocking ASP General 8 03-07-2004 09:07 PM
Problems with money, decimal numbers after migration to Framework 1.1 Artek ASP .Net 3 02-14-2004 07:01 AM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57