【发布时间】:2022-01-07 13:40:44
【问题描述】:
用户输入员工的出生日期,但任务说您必须验证输入。
当用户输入生日日期为 33 或 B.O.D. 中没有这样的日子时,我希望应用程序显示一个错误
此外,当用户单击保存时,文本字段中的数据应保存到数组列表中。 并且当用户点击打印时,arraylist中保存的数据应该显示为以前的信息。
public class JavaGUI {
ArrayList<JavaMethods> arl10 = new ArrayList<JavaMethods>();
ArrayList<JavaMethods> arl11 = new ArrayList<JavaMethods>();
JFrame frame;
JPanel panel;
JLabel labelA = new JLabel("Employee Information");
JLabel labelB = new JLabel("Employee Birthdate");
JLabel label1 = new JLabel("Employee Name:");
JTextArea txt1 = new JTextArea(" ");
JLabel label2 = new JLabel("Employee Address:");
JTextArea txt2 = new JTextArea(" ");
JLabel label3 = new JLabel("Employee Age:");
JTextArea txt3 = new JTextArea(" ");
JLabel label4 = new JLabel("Day:");
JTextArea txt4 = new JTextArea(" ");
JLabel label5 = new JLabel("Month:");
JTextArea txt5 = new JTextArea(" ");
JLabel label6 = new JLabel("Year:");
JTextArea txt6 = new JTextArea(" ");
JButton btn1 = new JButton("Clear");
JButton btn2 = new JButton("Save");
JButton btn3 = new JButton("Print");
JRadioButton male = new JRadioButton("Male");
JRadioButton female = new JRadioButton("Female");
ButtonGroup g1 = new ButtonGroup();
ActionListener act1 = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
txt1.setText(" ");
txt2.setText(" ");
txt3.setText(" ");
txt4.setText(" ");
txt5.setText(" ");
txt6.setText(" ");
}
};
ActionListener act2 = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
int day = Integer.parseInt(txt4.getText());
if(day <= 32) {
JOptionPane.showMessageDialog(frame, "Employee Information has been saved, Click PRINT to show them!");
JavaMethods arl10 = new JavaMethods(txt1.getText().trim(), txt2.getText().trim(), male.getText(),Integer.parseInt(txt3.getText().trim()), Integer.parseInt(txt4.getText().trim()),Integer.parseInt(txt5.getText().trim()), Integer.parseInt(txt6.getText().trim()));
arl11.add(arl10);
}
else {
System.out.println("wrong day");
}
}
catch(NumberFormatException ex)
{
System.out.println("Exception : "+ex);
}
}
};
ActionListener act3 = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
System.out.println(arl11);
JavaMethods arl10 = new JavaMethods(txt1.getText().trim(), txt2.getText().trim(), female.getText(),
Integer.parseInt(txt3.getText().trim()), Integer.parseInt(txt4.getText().trim()),
Integer.parseInt(txt5.getText().trim()), Integer.parseInt(txt6.getText().trim()));
arl11.add(arl10);
System.out.print("Previously Stored Information" + " " + arl11);
System.out.println();
System.out.println(arl10.toString());
}
catch (Exception e1) {
System.out.println(
"Unable to perform the task, Please make sure you have entered the right DataType, Or make sure you have filled all the blanks.");
}
}
};
public JavaGUI() {
frame = new JFrame();
panel = new JPanel();
frame.setPreferredSize(new Dimension(500, 500));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("HR System");
btn1.addActionListener(act1);
btn2.addActionListener(act2);
btn3.addActionListener(act3);
panel.add(labelA);
panel.add(label1);
panel.add(txt1);
panel.add(label2);
panel.add(txt2);
panel.add(label3);
panel.add(txt3);
panel.add(labelB);
panel.add(label4);
panel.add(txt4);
panel.add(label5);
panel.add(txt5);
panel.add(label6);
panel.add(txt6);
g1.add(male);
g1.add(female);
panel.add(btn1);
panel.add(btn2);
panel.add(btn3);
panel.add(male);
panel.add(female);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
}
【问题讨论】:
-
您在验证过程中遇到的具体问题是什么?你能指定吗?谢谢。
-
@vivek 我想通过在控制台中显示错误来阻止用户输入错误的出生日期所以不允许用户输入日期为 32,没有这样的出生日期
-
那么你应该将表达式更改为
-
这是一个字符串,我无法将其与整数值进行比较
-
但是我看到你正在做一个 parseInt 所以你将拥有 int 值。