1

我有一个JTextField用户必须输入数据的地方。它的值必须始终以开头RA并且后面必须正好有 8 位数字。所以,它的长度总是10。例如,RA12345678

我如何在 Java 中做到这一点?

我尝试使用MaskFormatterJFormattedTextField 但没有达到结果。我需要一起验证输入的长度。

4

1 回答 1

2

我会JSpinner为此使用 a ,并简单RA地在数字前加上前缀。例如

图片

在此处输入图像描述

典型输出

RA8007006

代码

import java.awt.*;
import javax.swing.*;

class CaptureRA {

    public static void main(String[] args) {
        Runnable r = new Runnable() {

            @Override
            public void run() {
                String prefix = "RA";
                JPanel gui = new JPanel(new FlowLayout(4));
                gui.add(new JLabel(prefix));
                SpinnerModel ints = new SpinnerNumberModel(
                        1000000,1000000,99999999,1);
                JSpinner spinner = new JSpinner(ints);
                gui.add(spinner);

                JOptionPane.showMessageDialog(null, gui);
                System.out.println(prefix + ints.getValue());
            }
        };
        // Swing GUIs should be created and updated on the EDT
        // http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html
        SwingUtilities.invokeLater(r);
    }
}
于 2013-04-29T04:26:32.003 回答