K
kishanthany
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();
}
}
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();
}
}