1

データベースから値を読み取り、それをjcomboボックスに追加する必要があります。プロジェクトの名前はemployeeテーブルから読み取られ、文字列配列リストに格納されます。これらの値は、pro_stringという名前の文字列配列に追加されます。この文字列配列内の値を出力してみましたが、正常に機能します。しかし、値はコンボボックス(combo_project)に入力されていないようです。以下は私が使用したコードです。例外「3」をスローし続けます。助けてください。

public class meeting_form extends javax.swing.JFrame {

Connection mconn=new database().connect();


public meeting_form() {
    initComponents();

    add_projects();
}

public void add_projects()
{

    ArrayList<String> projects=new ArrayList<>();
    try{

        String pro="Select distinct project from employee";
        Statement pro_st=mconn.createStatement();
        ResultSet pro_rs=pro_st.executeQuery(pro);
        while(pro_rs.next())
        {
            String pro_name=pro_rs.getString("project");
            projects.add(pro_name);

        }
        int len=projects.size()-1;
        String[] pro_string=new String[len];
        for(int j=0;j<=len;j++)
        {
            pro_string[j]=projects.get(j);

        }
      combo_project.setModel(new javax.swing.DefaultComboBoxModel(pro_string));
    }
    catch(Exception e)
    {
        System.out.println(e.getMessage()+"......at reading project names");
    }

}

public static void main(String args[]) {

    try {

    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new meeting_form().setVisible(true);
        }
    });
}
private javax.swing.JComboBox;
4

1 に答える 1

4

これは私には間違っているように見えます

int len=projects.size()-1;
String[] pro_string=new String[len];
for(int j=0;j<=len;j++)
{
    pro_string[j]=projects.get(j);
}

私はそれがすべきだと思います

int len=projects.size();
String[] pro_string=new String[len];
for(int j=0;j<len;j++)
{
    pro_string[j]=projects.get(j);
}
于 2013-03-12T07:25:44.967 に答える