2013-03-12 5 views
1

데이터베이스에서 값을 읽어 jcombo 상자에 추가해야합니다. 프로젝트 이름이 employee 테이블에서 읽혀 문자열 arraylist에 저장됩니다. 이 값은 pro_string이라는 문자열 배열에 추가됩니다. 이 문자열 배열 안에 값을 인쇄 해봤는데 제대로 작동합니다. 그러나 값은 단지 콤보 상자 (combo_project)를 입력하지 않는 것 같습니다. 다음은 내가 사용한 코드입니다. 그것은 예외 "3"을 던지기를 계속한다. 도와주세요.JComboBox에 항목을 동적으로 추가하기

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; 
+0

해야한다고 생각

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

에 잘못된 모양() 자바 명명 규칙을 배울하시기 바랍니다 더 의미있는 오류 메시지 – MadProgrammer

+0

를 내기하기 그들을 붙잡아 라. – kleopatra

답변

4

이 나를 나는 그것이 e.printStackTrace를 사용해보십시오

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

예. 'pro_string' 배열이 충분히 크지 않은 것처럼 보입니다. 만약 내가 추측한다면, 예외가 OutOfBoundsException이고 "3"이 범위를 벗어난 인덱스라고 추측합니다. –

+1

for 루프를 'for projects.size()'에'len'으로 변경하십시오. – mKorbel

+0

@mKorbel 또는 단순히 projects.toArray (new String [0])를 사용하십시오. – MadProgrammer

관련 문제