ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java – 如何确保JTextField只包含字母?

2019-06-09 13:51:24  阅读:148  来源: 互联网

标签:java regex swing jtextfield string


我想在我的名字字段中仅将字母作为输入.

我已经尝试过使用匹配方法,但遗憾的是出现了错误并抛出了异常.

还有其他检查方法吗?

   import java.awt.BorderLayout;
   import java.awt.FlowLayout;
   import java.awt.GridBagConstraints;
   import java.awt.GridBagLayout;
   import java.awt.GridLayout;
   import java.awt.Insets;
   import java.awt.event.ActionEvent;
   import java.awt.event.ActionListener;
   import javax.swing.*;


    public class CreateAccount extends JFrame implements ActionListener{

    JPanel details = new JPanel(new GridBagLayout());

    JLabel fName= new JLabel("First Name:");
    JTextField firstNameField = new JTextField(10);

    JLabel lName= new JLabel("Last Name:");
    JTextField lastNameField = new JTextField(10);

    JLabel initialDeposit = new JLabel("Initial Deposit: ");
    JTextField initialDepositField = new JTextField(10);

    String accountTypes[] = {"Savings","Current"};

    JComboBox accountTypesComboBox = new JComboBox(accountTypes);
    JLabel accountType= new JLabel("Account type: ");

    JButton submit = new JButton("SUBMIT");
    JButton review = new JButton("REVIEW");

    Administrator admin = new Administrator();
    User u[] = new User[admin.maxNumberOfUsers];

    CreateAccount() {
        buildGui();
        setSize(400,300);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public void initialiseUserCount() {
        admin.numberOfSavingsAccount = 0;
        admin.numberOfCurrentAccount = 0;
        admin.numberOfUsers=0;
    }
    public void buildGui() {

        setTitle("New Account Form");

        //JPanel submitPanel = new JPanel();
        //submitPanel.add(submit);


        GridBagConstraints c = new GridBagConstraints();
        c.insets=new Insets(10,10,10,10);
        // Stretch components horizontally (but not vertically) 
        c.fill = GridBagConstraints.HORIZONTAL;
        // Components that are too short or narrow for their space
        // Should be pinned to the northwest (upper left) corner
        c.anchor = GridBagConstraints.NORTHWEST;
        // Give the "last" component as much space as possible
        c.weightx = 1.0;

        c.gridx=0;
        c.gridy=0;
        details.add(fName,c);
        c.gridx=1;
        c.gridy=0;
        details.add(firstNameField,c);
        c.gridx=0;
        c.gridy=1;
        details.add(lName,c);
        c.gridx=1;
        c.gridy=1;
        details.add(lastNameField,c);
        c.gridx=0;
        c.gridy=2;
        details.add(initialDeposit,c);
        c.gridx=1;
        c.gridy=2;
        details.add(initialDepositField,c);
        c.gridx=0;
        c.gridy=3;
        details.add(accountType,c);
        c.gridx=1;
        c.gridy=3;
        details.add(accountTypesComboBox,c);
        c.gridx=0;
        c.gridy=4;
        details.add(submit,c);
        c.gridx=1;
        c.gridy=4;
        details.add(review,c);
        add(details);

        firstNameField.addActionListener(this);
        review.addActionListener(this);

    }
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==firstNameField) {
            try {
                String uFName = firstNameField.getText().toString();

                if(!uFName.matches("[A-Za-z]+"))
                    throw new Exception();
            }
            catch(Exception e1) {
                firstNameField.setText("");
                JOptionPane.showMessageDialog(firstNameField,"Please enter a valid name!");
            }
        }
    }
}

解决方法:

您可以尝试使用此正则表达式

if(!uFName.matches("^[a-zA-Z]+$"))

标签:java,regex,swing,jtextfield,string
来源: https://codeday.me/bug/20190609/1205040.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有