栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

jFormattedTextField的Formatter.setCommitsOnValidEdit(true)首先无法正常工作

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jFormattedTextField的Formatter.setCommitsOnValidEdit(true)首先无法正常工作

可能您必须在这里查看documentListener 示例

编辑:

我从第一次接触到就知道了这个问题JFormattedTextField,下面的示例并非一时就可用focusLost:-),并且可能演示了
您的问题

下限是有定在10.000,-两个JFormattedTextField,

1号

JFormattedTextField
处理
FocusListener
(输出必须延迟到中invokeLater)

2号

JFormattedTextField
处理
documentListener
(每隔……)

初始外观

这是同样的问题,因为我只在这里放了500,并且重点放在了什么都没有改变,正确的金额必须>​​ =10.000,-

不知道这怎么可能,但是通过将换成来解决

invokeLater()
,然后在1st上工作。
focusLost
(您必须取消注释这些代码行)

从代码

import java.awt.*;import java.awt.event.*;import java.math.RoundingMode;import java.text.NumberFormat;import javax.swing.*;import javax.swing.border.*;import javax.swing.event.*;public class FormatterLimit {    private Jframe frame = new Jframe();    private JPanel pnl = new JPanel();    private JLabel focusLabel = new JLabel(" focusLost Handle ");    private JFormattedTextField formTextField;    private JLabel docLabel = new JLabel(" document Handle ");    private JFormattedTextField formTextField1;    private NumberFormat formTextFieldFormat;    private double amount = 10000.00;    public FormatterLimit() {        formTextFieldFormat = NumberFormat.getNumberInstance();        formTextFieldFormat.setMinimumFractionDigits(2);        formTextFieldFormat.setMaximumFractionDigits(2);        formTextFieldFormat.setRoundingMode(RoundingMode.HALF_UP);        focusLabel.setFont(new Font("Serif", Font.BOLD, 14));        focusLabel.setForeground(Color.blue);        focusLabel.setPreferredSize(new Dimension(120, 27));        formTextField = new JFormattedTextField(formTextFieldFormat);        formTextField.setValue(amount);        formTextField.setFont(new Font("Serif", Font.BOLD, 22));        formTextField.setForeground(Color.black);        formTextField.setBackground(Color.yellow);        formTextField.setPreferredSize(new Dimension(120, 27));        formTextField.setHorizontalAlignment(SwingConstants.RIGHT);        formTextField.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) {     formTextField.requestFocus();     formTextField.setText(formTextField.getText());     formTextField.selectAll(); } @Override public void focusLost(FocusEvent e) {     //Runnable doRun = new Runnable() {     //@Override     //public void run() {     double t1a1 = (((Number) formTextField.getValue()).doublevalue());     if (t1a1 < 1000) {         formTextField.setValue(amount);     }     //}     // };     //SwingUtilities.invokeLater(doRun); }        });        docLabel.setFont(new Font("Serif", Font.BOLD, 14));        docLabel.setForeground(Color.blue);        docLabel.setPreferredSize(new Dimension(120, 27));        formTextField1 = new JFormattedTextField(formTextFieldFormat);        formTextField1.setValue(amount);        formTextField1.setFont(new Font("Serif", Font.BOLD, 22));        formTextField1.setForeground(Color.black);        formTextField1.setBackground(Color.yellow);        formTextField1.setPreferredSize(new Dimension(120, 27));        formTextField1.setHorizontalAlignment(SwingConstants.RIGHT);        formTextField1.addFocusListener(new FocusListener() { @Override public void focusGained(FocusEvent e) {     formTextField1.requestFocus();     formTextField1.setText(formTextField1.getText());     formTextField1.selectAll(); } @Override public void focusLost(FocusEvent e) { }        });        formTextField1.getdocument().adddocumentListener(docListener);        pnl = new JPanel();        pnl.setBorder(new EmptyBorder(2, 2, 2, 2));        pnl.setLayout(new GridLayout(2, 2));        pnl.add(focusLabel);        pnl.add(formTextField);        pnl.add(docLabel);        pnl.add(formTextField1);        frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);        frame.add(pnl, BorderLayout.CENTER);        frame.setLocation(200, 200);        frame.pack();        frame.setVisible(true);        formTextFieldFocus1();    }    //    private documentListener docListener = new documentListener() {        @Override        public void changedUpdate(documentEvent documentEvent) { printIt(documentEvent);        }        @Override        public void insertUpdate(documentEvent documentEvent) { printIt(documentEvent);        }        @Override        public void removeUpdate(documentEvent documentEvent) { printIt(documentEvent);        }        private void printIt(documentEvent documentEvent) { documentEvent.EventType type = documentEvent.getType(); double t1a1 = (((Number) formTextField1.getValue()).doublevalue()); if (t1a1 < 1000) {     Runnable doRun = new Runnable() {         @Override         public void run() {  formTextField1.setValue(amount);         }     };     SwingUtilities.invokeLater(doRun); }        }    };    private void formTextFieldFocus1() {        Runnable doRun = new Runnable() { @Override public void run() {     formTextField1.grabFocus();     formTextField1.requestFocus();     formTextField1.setText(formTextField1.getText());     formTextField1.selectAll(); }        };        SwingUtilities.invokeLater(doRun);    }    private void formTextFieldFocus() {        Runnable doRun = new Runnable() { @Override public void run() {     formTextField.grabFocus();     formTextField.requestFocus();     formTextField.setText(formTextField.getText());     formTextField.selectAll();     formTextFieldFocus1(); }        };        SwingUtilities.invokeLater(doRun);    }    public static void main(String args[]) {        EventQueue.invokeLater(new Runnable() { @Override public void run() {     FormatterLimit fl = new FormatterLimit(); }        });    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569275.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号