2

私はこのようなものでGUIを作りました:

String[] days29 = {"1",....."29"};
String[] days30 = {"1",....."30"};
String[] days31 = {"1",....."31"};
String[] mths = {"January",..."December"};

JComboBox months = new JComboBox(mths);
JComboBox days = new JComboBox();

public daysAdjuster(){
    if(months.getSelectedItem().equals.("January")){
        days = new JComboBox(days31);
    }else if(months.getSelectedItem().equals.("February")){
        days = new JComboBox(days29);
    }else if(months.getSelectedItem().equals.("April")){
        days = new JComboBox(days30);
    }

public static void main(String[] args){
// JFrame codes here
daysAdjuster();
}

私がやりたいことは、JComboBox "months" で 31 日を含む月を選択すると、JComboBox "days" は "days31" 文字列配列を使用して項目を出力し、30 日のみを含む月を選択すると、文字列を出力することです。私の時代のJComboBoxの配列「days30」。

しかし、別の月を選択したにもかかわらず、私が得ているのは [[ days = new JComboBox(days31) ]] だけです。たとえば、Febraury を選択すると、「days31」文字列配列を持つ「days」JComboBox が引き続き表示されます。明らかに、私は daysAdjuster で間違いを犯したか、間違った方法で作成しました。エラーを修正してください。理解できません。前もって感謝します!

ノート:

  1. 1 月は、jcombobox の「月」でデフォルトで選択されている項目です。

  2. if-else ステートメントと文字列配列の宣言でスペルミスを犯したことはありません (私の例でスペルミスを見つけた場合に備えて)

  3. 「月」と「日」の jcombobox は jframe に表示されます。現在作成している GUI で jcombobox を間違えたことはありません。

4

1 に答える 1

4

ここでいくつかの点を指摘できます。

  1. .条件の後equalsに追加がありifます。
  2. 可能な限り、常に事前定義された配列を使用してください。ここでは、次のように月に事前定義された配列を使用する必要があります。

    String[] mths = (new DateFormatSymbols()).getMonths();

  3. 毎回日のコンボ ボックスを再初期化する代わりに、モデルを使用してその値を変更します。

  4. 参考文献:
于 2013-02-25T06:52:41.290 に答える