当前位置: 首页 > 知识库问答 >
问题:

Java GUI-出生日期

黄元章
2023-03-14

用户输入员工的出生日期,但任务要求您验证条目。

我希望应用程序显示的是一个错误,当用户输入生日的日期为33或什么,因为在B. O. D.中没有这样的一天。

此外,当用户单击“保存”时,文本字段中的数据应保存到arraylist中。当用户单击“打印”时,保存在arraylist中的数据应显示为以前的信息。

java prettyprint-override">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);

    }

}

共有1个答案

祖奇
2023-03-14

若要比较作为文本输入的数字,请解析。

String dayInput = "42" ;
int day = Integer.parseInt( dayInput ) ;
if( day > 32 ) { … handle invalid input }

要验证一个日期,实例化一个LocalDate对象,同时捕获DateTimeParseExc0019

 类似资料:
  • 我试图在MySQL中找到下一个基于DOB的日期实例-例如,如果DOB是1975-12-20,我们今天运行它,那么下一个生日是2020-12-20。 同样,如果DOB为1975-12-19,则下一个生日为2020-12-19,但如果DOB为1975-12-21,则下一个生日为2019-12-21。 我可以在PHP中通过分解日期和替换年份来实现这一点,但我想尝试在MySQL中实现,因为它会更快地运行,

  • 我有一个二维数组(矩阵),尺寸为50x50。在这些矩阵中,每个位置的值为 0 或 1。此矩阵由具有 50x50 按钮的网格布局呈现,如果值为 0 或 1,则这些按钮为白色或黑色。如果我按下一个按钮,矩阵中的相关位置应该将值更改为1。为了实现这一点,我为每个矩阵位置创建了一个按钮的网格,由for循环执行。我还为此 for 循环中的每个按钮实现了一个 ActionListener。我尝试使用 Acti

  • 在Postgres数据库中给定此架构: 我如何查询表以获得每个人今天之后的下一个生日的日期? 例如,如果Bob的出生日期是2000-06-01,那么他的下一个生日将是2016-06-01。 注意:我不是在寻找一个预定义的,而是一个人出生的下一个周年纪念日。 我已经用Python写了等效的: 然而,我想看看博士后是否能以更有效的方式做到这一点。

  • 用户输入员工的出生日期,但任务要求您必须验证输入。 我希望应用程序显示的是一个错误,当用户输入生日的日期为33或什么,因为在B. O. D.中没有这样的一天。 此外,当用户单击保存时,文本字段中的数据应该保存到数组列表中。当用户单击打印时,保存在数组列表中的数据应显示为以前的信息。

  • 我用Java写了Tic-Tac-Toe。我似乎遇到的问题是,当(人类)播放器1和(计算机)播放器2之间出现平局时,GUI会冻结。我已经在“Buttonlistener”类和“Methods”中创建了一个tieCheck,以获得一个平局。 我的程序的工作方式是,当按下一个按钮时,它会将一个值传递给methods类中的数组。在这个数组中,1=玩家1,2=玩家2。 人类玩家总是先走,所以当人类玩家走了4

  • 问题内容: 我在sql中有一个用户表,他们每个都有生日。我想将他们的出生日期转换为他们的年龄(仅年),例如日期:年龄:14,并将更改为年龄: 在这里,我想显示用户的日期: 问题答案: 功能:, MySQL > = 5.0.0 功能:,