Java JFormattedTextField number field for BigDecimal

Introduction

Create BigDecimal input field via DecimalFormat


import java.awt.FlowLayout;
import java.math.BigDecimal;
import java.text.DecimalFormat;

import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.text.DefaultFormatter;
import javax.swing.text.NumberFormatter;


public class Main extends JFrame {
  public Main() {
    super("JButton");

    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setLayout(new FlowLayout());
    JLabel nameLabel = new JLabel("Value:");
    /*  www.j  a  va 2 s.  com*/
    JFormattedTextField name = new JFormattedTextField(new BigDecimal(123.123));
    DefaultFormatter fmt = new NumberFormatter(new DecimalFormat("#.0###############"));
    fmt.setValueClass(name.getValue().getClass());
    
    JTextField text = new JTextField("Click here to see the validation result");

    getContentPane().add(nameLabel);
    getContentPane().add(name);
    getContentPane().add(text);

  }


  public static void main(String[] args) {
    Main frame = new Main();
    frame.pack();
    frame.setVisible(true);
  }
}



PreviousNext

Related