本文介绍了在 Java 中使用 MaskFormatter 将值设置为 Jformattedtextfield的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个 MaskFormatter 和 Jformattedtextfield .代码是

I have a MaskFormatter and Jformattedtextfield .The code for that is

try {
    mk = new MaskFormatter("**-**-**-**-**-**-**-**-**-**-**-**-**-**-**");
    mk.setPlaceholderCharacter('_');
} catch(ParseException e) {
    e.printStackTrace();
}

format1=new JFormattedTextField(mk);
format1.setBounds(170, 80, 280,25);
format1.setFont(new Font("serif",Font.PLAIN,13));
commandpanel.add(format1);

我已将 maskformatter 添加到 jformattedTextfield.单击按钮时,我试图将值设置为 format1,但 format1 字段中未显示任何内容.

I have added maskformatter to jformattedTextfield.On click of a button i am trying to set a value to format1 but nothing is getting displayed in format1 field.

这是设置值的代码

// value may be 1E0234
String value=hashmap1.get("Command 1").substring(hashmap1.get("Command 1").lastIndexOf("-")+2, hashmap1.get("Command 1").length());

format1.setValue(value);

我也尝试过使用 format1.setText(value),在这种情况下它显示在字段中但没有掩码格式器.

I also tried with format1.setText(value),in this case it is displaying in the field but without a maskformatter.

如何与掩码一起显示值.

How do i display the value along with the mask.

推荐答案

这对我有用:

public class MyJFrame extends JFrame {

MyJFrame() {
    try {
        MaskFormatter mk = null;
        try {
            mk = new MaskFormatter("**-**-**-**-**-**-**-**-**-**-**-**-**-**-**");
            mk.setPlaceholderCharacter('_');
        } catch (ParseException e) {
            e.printStackTrace();
        }
        JFormattedTextField format1 = new JFormattedTextField(mk);
        format1.setBounds(170, 80, 280, 25);
        format1.setFont(new Font("serif", Font.PLAIN, 13));
        String value = "ZZ-99-ZZ-99-ZZ-99-ZZ-99-ZZ-99-ZZ-99-ZZ-99-ZZ";//hashmap1.get("Command 1").substring(hashmap1.get("Command 1").lastIndexOf("-")+2, hashmap1.get("Command 1").length());
        String display = mk.valueToString(value);
        System.out.println("display = " + display);
        format1.setValue(value);
        add(format1);
        pack();
    } catch (ParseException ex) {
        Logger.getLogger(MyJFrame.class.getName()).log(Level.SEVERE, null, ex);
    }
}

/**
 * @param args the command line arguments
 */
public static void main(String args[]) {
    /* Create and display the form */
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new MyJFrame().setVisible(true);
        }
    });
}
}

如果值为zz-99"则显示

If value is "zz-99" it displays

zz-99-__-__-__-__-__-__-__-__-__-__-__-__-__

这篇关于在 Java 中使用 MaskFormatter 将值设置为 Jformattedtextfield的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-12 22:09