gpt4 book ai didi

java:验证 GUI 中的所有文本字段是否已完成

转载 作者:搜寻专家 更新时间:2023-11-01 02:15:48 25 4
gpt4 key购买 nike

我正在尝试创建一个允许某人设置帐户的 GUI。当按下创建帐户按钮时,我想验证所有文本字段是否完整。做这个的最好方式是什么?我附上了我的代码,但无法验证文本字段是否完整。

见下面的代码:

public class GUIaccounts extends JFrame{

private JLabel name;
private JLabel initDeposit;
private JLabel chooseAccount;
private JLabel empty;
private JTextField nameTextField;
private JTextField initDepositTextField;
private JPanel dataPanel;
private JPanel accountTypePanel;
private JRadioButton savingsAccount;
private JRadioButton premiereChecking;
private ButtonGroup radioButtonGroup;
private JButton createAccountButton;
private JPanel createAccountPanel;
private Bank myBank;



public GUIaccounts(){
setTitle("Create an Account");
setSize(1000,1000);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
buildPanels();
setVisible(true);
pack();
setLocationRelativeTo(null);
myBank=new Bank();

}

private void buildPanels(){
//create the panels
dataPanel= new JPanel();
dataPanel.setLayout(new GridLayout(2,2));
accountTypePanel=new JPanel();
accountTypePanel.setLayout(new GridLayout(3,1));
createAccountPanel=new JPanel();
createAccountPanel.setLayout(new FlowLayout());
//create labels
name=new JLabel("Enter Name:");
Border border = LineBorder.createBlackLineBorder();
name.setBorder(border);
initDeposit=new JLabel("Enter Initial Deposit:");
initDeposit.setBorder(border);
chooseAccount=new JLabel("Choose Account:");
empty=new JLabel(" ");
//create text fields
nameTextField=new JTextField();
initDepositTextField=new JTextField();
//create buttons
savingsAccount = new JRadioButton("Savings Account");
premiereChecking =new JRadioButton ("Premiere Checking Account");
createAccountButton=new JButton("Create Account");
//add labels and field to the panel
dataPanel.add(name);
dataPanel.add(nameTextField);
dataPanel.add(initDeposit);
dataPanel.add(initDepositTextField);
//add button to the panel
accountTypePanel.add(chooseAccount);
accountTypePanel.add(empty);
accountTypePanel.add(savingsAccount);
accountTypePanel.add(premiereChecking);
createAccountPanel.add(createAccountButton);

//add actionListeners to the buttons
savingsAccount.addActionListener(new RadioButtonListener());
premiereChecking.addActionListener(new RadioButtonListener());
createAccountButton.addActionListener(new createAccountListener());
//add focus to the text field
nameTextField.addFocusListener(new nameFieldListener());
initDepositTextField.addFocusListener(new initDepositFieldListener());
//add panels to the contentPane
add(dataPanel, BorderLayout.NORTH);
add(accountTypePanel, BorderLayout.CENTER);
add(createAccountPanel, BorderLayout.SOUTH);
//group radio buttons
radioButtonGroup= new ButtonGroup();
radioButtonGroup.add(savingsAccount);
radioButtonGroup.add(premiereChecking);
}
private class createAccountListener implements ActionListener{
public void actionPerformed(ActionEvent e){
String name=null;
Double amount=null;
if (savingsAccount.isSelected()){
name=nameTextField.getText();
amount=Double.valueOf(initDepositTextField.getText());
if(name!=null && amount !=null){
try{

SavingsAccount account=new SavingsAccount(name,AccountIDs.getNextID(), amount);
myBank.addAccount(account);
JOptionPane.showMessageDialog(null,"Account setup was successful" + myBank.toString());
}



catch(Exception e1){
JOptionPane.showMessageDialog(null,"Unable to set up account. " +e1.getMessage());
}
}
else{
JOptionPane.showMessageDialog(null, "All fields must be completed in order to set up account");
}
}

else if(premiereChecking.isSelected()){
name=nameTextField.getText();
amount=Double.valueOf(initDepositTextField.getText());
if(name!=null && amount!=null){
try{
PremiereCheckingAccount account=new PremiereCheckingAccount(name, AccountIDs.getNextID(),amount);
myBank.addAccount(account);
JOptionPane.showMessageDialog(null,"Account setup was successful" +myBank.toString());
}
catch(Exception e1){
JOptionPane.showMessageDialog(null,"Unable to set up account. " + e1.getMessage());
}
}
else{
JOptionPane.showMessageDialog(null, "All fields must be completed in order to set up account");
}

}
else{
JOptionPane.showMessageDialog(null,"Please select the type of account you want to create.");
}
}
}
private class RadioButtonListener implements ActionListener{
public void actionPerformed(ActionEvent e){


}
}

private class nameFieldListener implements FocusListener{
public void focusGained(FocusEvent e){

nameTextField.selectAll();//highlight contents
}

public void focusLost(FocusEvent e){
}



}
private class initDepositFieldListener implements FocusListener{
public void focusGained(FocusEvent e){
initDepositTextField.selectAll();
}

public void focusLost(FocusEvent e) {


}
}



public static void main(String[]args){
GUIaccounts myAccount=new GUIaccounts();
}

最佳答案

getText() 方法不会返回 null。它将返回空字符串 ("")。

你的测试应该是这样的:

if ( textField.getText().trim().length() == 0 )
// error

关于java:验证 GUI 中的所有文本字段是否已完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6400431/

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