Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / June 2006

Tip: Looking for answers? Try searching our database.

Trouble in entering numbers after decimal points - JFormattedTextField

Thread view: 
kishanthany@gmail.com - 26 Jun 2006 08:33 GMT
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();
   }
   }
hiwa - 26 Jun 2006 10:20 GMT
kishanthany@gmail.com :

> Hey!
>
[quoted text clipped - 78 lines]
>     }
>     }
The most flexible way would be to use a DocumentFilter.
Sorry I do not have enough time to write an example.


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.