gpt4 book ai didi

java - 如何向 JOptionPane 中的多个文本字段添加验证?

转载 作者:行者123 更新时间:2023-11-30 06:50:27 25 4
gpt4 key购买 nike

我有以下方法,单击按钮时会弹出一个窗口。

public void cardPopUp() {
String[] cardTypes = {"Visa", "Mastercard", "Electron", "Cashcard"};

JComboBox combo = new JComboBox(cardTypes);
JTextField field1 = new JTextField("");
JTextField field2 = new JTextField("");
JTextField field3 = new JTextField("");
JTextField field4 = new JTextField("");
JTextField field5 = new JTextField("");

JPanel panel = new JPanel(new GridLayout(0, 2));
panel.add(new JLabel("Card Type:"));
panel.add(combo);
panel.add(new JLabel("Cardholder Name:"));
panel.add(field1);
panel.add(new JLabel("Card Number:"));
panel.add(field2);
panel.add(new JLabel("Month Expiry:"));
panel.add(field3);
panel.add(new JLabel("Year Expiry:"));
panel.add(field4);
panel.add(new JLabel("CVC:"));
panel.add(field5);

int input = JOptionPane.showConfirmDialog(MainActivity.this, panel, "Card Payment",
JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
if (input == JOptionPane.OK_OPTION) {
Basket.orderNo+=1;
dispose();
new OrderConfirmationScreen().setVisible(true);
} else {
System.out.println("Payment Cancelled");
}
}

如何添加验证,以便检查字段以查看是否为卡付款输入了正确的数据。例如,field1 应仅允许文本,field2 应仅允许 16 位数字,依此类推。

我猜我需要创建更多方法来验证每个字段,然后只需调用 cardPopUp() 方法中的方法。

最佳答案

例如:

field1 should only allow text

if(field1.getText().matches("\\w+\\.?")){
...
}else{...}

field2 should only allow a 16 digit number

if(field2.getText().matches("(\\d{16})")){
...
}else{...}

等等。

关于java - 如何向 JOptionPane 中的多个文本字段添加验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42913081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com