0

私は簡単なプログラムを書いています。このプログラムの一部は、月 (アルファ)、日 (数値)、および年 (数値) の文字列を入力した一連のコンボボックスです。どういうわけかJavaに月、日、年の観点から日付を取得させ、システムクロックに従ってこれらのコンボボックスに正しい日を自動入力させたいと思います。

これが私のコードの一部です:

public static final String[] MONTHS = {"January", "February", "March", "April", "May", "June",
                                       "July", "August", "September", "October", "November",
                                       "December"};
public static final String[] DAYS = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", 
                                 "12", "13", "14", "15", "16", "17", "18", "19", "20", 
                                 "21", "22", "23", "24", "25", "26", "27", "28", "29", 
                                 "30", "31"};
public static final String[] YEARS = {"2015", "2014", "2013", "2012", "2011", "2010"};

Note to FORUMS: THIS ISN'T ALL THE CODE. I'VE JUST PROVIDED INFORMATION NECESSARY FOR THE QUESTION.

JLabel start = new JLabel("Start Date:");
if (shouldWeightX) {
c.weightx = .5;
}
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 0;
c.gridy = 1;
c.gridwidth = 1;
pane.add(start, c);

JComboBox MonthLong = new JComboBox();
if (shouldWeightX) {
    c.weightx = 0;
    }
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 1;
c.gridy = 1;
c.gridwidth = 1;
for(int i=0; i<MONTHS.length;i++) {
        MonthLong.addItem(MONTHS[i]);
    }
pane.add(MonthLong, c);

JComboBox DayLong = new JComboBox();
if (shouldWeightX) {
    c.weightx = 1.0;
    }
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 2;
c.gridy = 1;
c.gridwidth = 1;
for(int i=0; i<DAYS.length;i++) {
    DayLong.addItem(DAYS[i]);
}
pane.add(DayLong, c);

JComboBox YearLong = new JComboBox();
if (shouldWeightX) {
    c.weightx = 1.0;
    }
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 3;
c.gridy = 1;
c.gridwidth = 1;
for(int i=0; i<YEARS.length;i++) {
    YearLong.addItem(YEARS[i]);
}
YearLong.setSelectedItem("2013");
pane.add(YearLong, c);

前もって感謝します。

4

2 に答える 2

1

java.util.Calendarクラスで現在の時刻部分を取得する必要があります。

Calendar now = Calendar.getInstance();
// months start with 0 
System.out.println("Year is: " + now.get(Calendar.YEAR));   
System.out.println("Month is: " + (now.get(Calendar.MONTH) + 1));
System.out.println("Date is: " + now.get(Calendar.DATE));

次に、初期化ステップでコンボボックスに setSelectedIndex を設定できます。

また、これらの文字列をコンボボックスに追加するために for ループを使用する必要がないことにも注意してください。それを試してみてください。

JComboBox<String> MonthLong = new JComboBox<String>(MONTHS);
于 2013-03-28T19:31:40.683 に答える
0

このコードはテストしていません。

    Calendar now = Calendar.getInstance();
    int month = now.get(Calendar.MONTH);
    int day = now.get(Calendar.DAY_OF_MONTH);
    int year = now.get(Calendar.YEAR);

    MonthLong.setSelectedIndex(month);
    DayLong.setSelectedItem(Integer.toString(day));
    YearLong.setSelectedItem(Integer.toString(year));

Java では、変数は通常小文字で始まります。

于 2013-03-28T19:35:48.823 に答える