0

我正在学习 Java,但遇到了一个问题,我需要将一周中的日期输入枚举。然后,我需要将几个响应放入 switch case 语句中,并让用户将星期几输入 JOptionPane 并让程序输出适当的响应。

这是我的枚举:

public enum Day {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY,THURSDAY, FRIDAY, SATURDAY; 
}

这是我试图获得正确响应的尝试:

public class enumDayMood {
    Day day;
    
    public static void main(String[] args){
        String day = JOptionPane.showInputDialog("Enter the day of the week.");
    }
    
    public void telDayMood(){
        
        Day day = Day.MONDAY;
        
        switch(day){
            case MONDAY:
                JOptionPane.showMessageDialog(null,"Mondays are bad.");
                break;
            case FRIDAY:
                JOptionPane.showMessageDialog(null,"Fridays are better.");
                break;
            case SATURDAY: case SUNDAY:
                JOptionPane.showMessageDialog(null,"Weekends are best");
                break;
            default:
                JOptionPane.showMessageDialog(null,"Midweek days are so-so.");
                break;
        }
    }
    
}

我能够单独输出一周中的每一天,但我似乎无法让用户输入正常工作。我尝试了多种方法,但似乎都没有奏效。

4

1 回答 1

1

我建议使用方法showOptionDialog而不是showInputDialog. 使一周中的每一天都成为一种选择。那么用户只需要点击相关的按钮,就可以节省一些工作,不是吗?考虑以下:

import javax.swing.JOptionPane;

public class WeekDays {
    public enum Day {
        SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
    }

    public static void main(String[] args) {
        int index = JOptionPane.showOptionDialog(null,
                                                 "Enter the day of the week.",
                                                 "Moody",
                                                 JOptionPane.DEFAULT_OPTION,
                                                 JOptionPane.QUESTION_MESSAGE,
                                                 null,
                                                 Day.values(),
                                                 Day.MONDAY);
        Day selection = Day.values()[index];
        switch (selection) {
            case MONDAY:
                JOptionPane.showMessageDialog(null,"Mondays are bad.");
                break;
            case FRIDAY:
                JOptionPane.showMessageDialog(null,"Fridays are better.");
                break;
            case SATURDAY: case SUNDAY:
                JOptionPane.showMessageDialog(null,"Weekends are best");
                break;
            default:
                JOptionPane.showMessageDialog(null,"Midweek days are so-so.");
                break;
        }
        System.exit(0);
    }
}

这是我运行它时的样子。

正在运行的应用程序的屏幕截图

于 2021-03-06T14:47:31.743 回答