0

私の jTable 列 8 は、米国の州の列です。これは、jComboBox に適切な項目を設定して状態を表示するコードです。

Buffered Reader を使用して Jtable を埋めると、以下のコードはコンボボックス項目を設定するのに非常にうまく機能しました。

解析の問題のため、自分で書き直すのではなく、デフォルトの CSVReader ライブラリを使用することにしました。jTable の入力に関する問題は解決されましたが、何らかの理由でこのコードが機能しなくなりました。何か不足していますか?

jComboBox(0) は「--」です。

            java.lang.Object state = jTable1.getValueAt(jTable1.getSelectedRow(),8);
            String g = state.toString();

        if (g == "") {
            jComboBox1.setSelectedIndex(0);
        } else if (g == "AK") {
            jComboBox1.setSelectedIndex(1);
        } else if (g == "AL") {
            jComboBox1.setSelectedIndex(2);
        } else if (g == "AR") {
            jComboBox1.setSelectedIndex(3);
        }else if (g == "AZ") {
            jComboBox1.setSelectedIndex(4);
        }else if (g == "CA") {
            jComboBox1.setSelectedIndex(5);
        }else if (g == "CO") {
            jComboBox1.setSelectedIndex(6);
        }else if (g == "CT") {
            jComboBox1.setSelectedIndex(7);
        }else if (g == "DE") {
            jComboBox1.setSelectedIndex(8);
        }else if (g == "FL") {
            jComboBox1.setSelectedIndex(9);
        }else if (g == "GA") {
            jComboBox1.setSelectedIndex(10);
        }else if (g == "HI") {
            jComboBox1.setSelectedIndex(11);
        }else if (g == "IA") {
            jComboBox1.setSelectedIndex(12);
        }else if (g == "ID") {
            jComboBox1.setSelectedIndex(13);
        }else if (g == "IL") {
            jComboBox1.setSelectedIndex(14);
        }else if (g == "IN") {
            jComboBox1.setSelectedIndex(15);
        }else if (g == "KS") {
            jComboBox1.setSelectedIndex(16);
        }else if (g == "KY") {
            jComboBox1.setSelectedIndex(17);
        }else if (g == "LA") {
            jComboBox1.setSelectedIndex(18);
        }else if (g == "MA") {
            jComboBox1.setSelectedIndex(19);
        }else if (g == "MD") {
            jComboBox1.setSelectedIndex(20);
        }else if (g == "ME") {
            jComboBox1.setSelectedIndex(21);
        }else if (g == "MI") {
            jComboBox1.setSelectedIndex(22);
        }else if (g == "MN") {
            jComboBox1.setSelectedIndex(23);
        }else if (g == "MO") {
            jComboBox1.setSelectedIndex(24);
        }else if (g == "MS") {
            jComboBox1.setSelectedIndex(25);
        }else if (g == "MT") {
            jComboBox1.setSelectedIndex(26);
        }else if (g == "NC") {
            jComboBox1.setSelectedIndex(27);
        }else if (g == "ND") {
            jComboBox1.setSelectedIndex(28);
        }else if (g == "NE") {
            jComboBox1.setSelectedIndex(29);
        }else if (g == "NH") {
            jComboBox1.setSelectedIndex(30);
        }else if (g == "NJ") {
            jComboBox1.setSelectedIndex(31);
        }else if (g == "NM") {
            jComboBox1.setSelectedIndex(32);
        }else if (g == "NV") {
            jComboBox1.setSelectedIndex(33);
        }else if (g == "NY") {
            jComboBox1.setSelectedIndex(34);
        }else if (g == "OH") {
            jComboBox1.setSelectedIndex(35);
        }else if (g == "OK") {
            jComboBox1.setSelectedIndex(36);
        }else if (g == "OR") {
            jComboBox1.setSelectedIndex(37);
        }else if (g == "PA") {
            jComboBox1.setSelectedIndex(38);
        }else if (g == "RI") {
            jComboBox1.setSelectedIndex(39);
        }else if (g == "SC") {
            jComboBox1.setSelectedIndex(40);
        }else if (g == "SD") {
            jComboBox1.setSelectedIndex(41);
        }else if (g == "TN") {
            jComboBox1.setSelectedIndex(42);
        }else if (g == "TX") {
            jComboBox1.setSelectedIndex(43);
        }else if (g == "UT") {
            jComboBox1.setSelectedIndex(44);
        }else if (g == "VA") {
            jComboBox1.setSelectedIndex(45);
        }else if (g == "VT") {
            jComboBox1.setSelectedIndex(46);
        }else if (g == "WA") {
            jComboBox1.setSelectedIndex(47);
        }else if (g == "WI") {
            jComboBox1.setSelectedIndex(48);
        }else if (g == "WV") {
            jComboBox1.setSelectedIndex(49);
        }else if (g == "WY") {
            jComboBox1.setSelectedIndex(50);
        }

助けてくれてありがとう。JB

4

1 に答える 1

4

を使用して文字列を比較しないでください==。代わりにequals(...)またはメソッドを使用してください。equalsIgnoreCase(...)== は、2 つのオブジェクトが同じであるかどうかをチェックすることを理解してください。だから代わりに

if (fu == "bar") {
  // do something
}

行う、

if ("bar".equals(fu)) {
  // do something
}

また、

if ("bar".equalsIgnoreCase(fu)) {
  // do something
}

編集
ところで、プログラムの設計は大幅に改善される可能性があります。なぜマジックナンバーを使うのか? この目的のために代わりに列挙型を使用することを検討してください。

于 2012-10-17T04:39:02.963 に答える