2012-12-13 2 views
1

을 발행하십시오. 나는 아마추어임을 명심하십시오. 어떤 이유에서든 jlist에 하나 이상의 요소가있는 경우에만 코드가 작동합니다. NETBEANS를 사용하면 오류가 생성 된 코드의 어딘가에 있습니다.모델 요소 (jlist)에 대한 변경 사항을 mysql 데이터베이스에 적용한 경우

이는 오류가 난 얻을 :

java.lang.ArrayIndexOutOfBoundsException : 1> = 1

//이 내 저장 버튼 내가 을 저장하려고 할 때 문제가된다 // voor의 ledenlijst

private String input ; 
Mainn main; 
DefaultListModel model = new DefaultListModel(); 
int selectie; 

private void opslaanActionPerformed(java.awt.event.ActionEvent evt) {           
     String leiderString = leider.getText(); 
     String namen = model.get(1).toString(); 
     String codev = code.getText(); 
     String naam1 = model.get(selectie).toString(); 


     main = new Mainn(); 
     try { 

      //voor leider wijzigen 
      main.stat = main.con.prepareStatement("UPDATE project SET leider=? WHERE code = ?"); 
      main.stat.setString(1, leiderString); 
      main.stat.setString(2, codev); 


      // voor ledenlijst PROBLEM IS HERE 
      main.stat2 = main.con.prepareStatement("UPDATE leden SET naam = ? WHERE naam = ?"); 
      main.stat2.setString(1, input); 
      main.stat2.setString(2, naam1); 




      main.stat.execute(); 
      main.stat2.execute(); 
      JOptionPane.showMessageDialog(null, "opgeslagen"); 
     } catch (SQLException ex) { 
      System.out.println(ex); 


     } 


    } 

// 아래 변경 한 코드입니다 :

private void wijzigActionPerformed(java.awt.event.ActionEvent evt) {          
    //try { 
    // } catch (SQLException ex) { 
    // System.out.println(ex); 
    // } 
    // 

    selectie = uitvoerLeden.getSelectedIndex(); 
    input = JOptionPane.showInputDialog("Wijzig dit project lid", model.elementAt(selectie)); 
    model.setElementAt(input,selectie); 
}          

답변

3

어느 시점에 model을 초기화합니까? 오류 발생 가능성이있는이 줄을 실행하기 전에는 그렇지 않은 것 같습니다.

String namen = model.get(1).toString(); 
+0

하하 걱정하지 말고, 당신의 라인은 내 실수를 지적했습니다. 나는 그 변수가 필요하지 않았다. 사용하지 않은 것은 너무 지저분하다. 덕분에 – hamchi

+0

@ user1880803 : 예외를 throw하는 행을 표시해야합니다. 그렇게하지 않으면 우리를 도와 줄 수있는 능력이 떨어질 것입니다. 솔루션에서 알맞은 추측을 위해 mtk에 1+ 이상. –