Как заполнить комбобокс дней на основе месяца и года? - PullRequest
0 голосов
/ 26 декабря 2018
private void buildMonthsList(cmbMonth monthsList) {
    for (int monthCount = 0; monthCount < 12; monthCount++)
        monthsList.addItem(Const.MONTHS[monthCount]);
}

public boolean DaysComboBox (int year)
{
    Calendar cal = Calendar.getInstance();
    int months = cal.get(Calendar.MONTH);

    year = (int) cmbYear.getSelectedItem();
    boolean leap = false;

    if(year % 4 == 0)
    {
        if( year % 100 == 0)
        {
            // year is divisible by 400, hence the year is a leap year
            if ( year % 400 == 0)
            {
                leap = true;
            }
            else {
                leap = false;
            }
        }
        else {
            leap = true;
        }
    }
    else {
        leap = false;
    }

    return leap;
}

Мне нужна помощь с программой Swing на Java, которая у меня есть для школы, что очень важно.

Как вы можете указать количество дней в зависимости от месяца и года, включая високосный год?Я использовал 3 отдельных поля со списком, один для дней, другой для месяцев и другой для лет.Его также следует вызывать из метода.

1 Ответ

0 голосов
/ 27 декабря 2018

«Лучшее» решение - воспользоваться доступными функциями.

Java 8+ представила API java.time, который заменяет API на основе Calendar и Date

Например, что-то вроде этого, используя YearMonth class…

for (int year = 2010; year <= 2020; year++) {
    YearMonth ym = YearMonth.of(year, Month.FEBRUARY);
    System.out.println(year + " = " + ym.lengthOfMonth());
}

, напечатает ...

2010 = 28
2011 = 28
2012 = 29
2013 = 28
2014 = 28
2015 = 28
2016 = 29
2017 = 28
2018 = 28
2019 = 28
2020 = 29

Из этого вы можете просто создатьновый ComboBoxModel, заполните его необходимыми значениями и примените его к экземпляру JComboBox - см. Как использовать поля со списком для получения более подробной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...