2012-01-03 5 views
0

다음 코드를 사용하여 데이터베이스에서 JComboBox으로 데이터를 검색합니다. 제대로 작동했습니다. 내 문제는이 코드를 실행할 때 jCombobox의 항목을 클릭하면 텍스트 상자에서 클릭 한 항목에 StudId이 필요하지만이 코드는 첫 번째 요소의 ID 만 반환합니다. 다른 항목을 클릭하면 텍스트 상자 값이 변경되지 않습니다. 이 코드에서 항목 변경된 옵션을 사용하는 방법?JComboBox에 mysql 데이터베이스 값 검색

package designstudent; 
import java.awt.*; 
import java.awt.Point; 
import java.awt.Rectangle; 
import java.awt.event.*; 
import java.beans.EventHandler; 
import javax.swing.table.DefaultTableModel; 
import java.sql.*; 
import java.util.ArrayList; 
import java.util.jar.Attributes.Name; 
import javax.swing.JOptionPane; 
import javax.swing.ListSelectionModel; 
import java.util.ArrayList.*; 
import javax.swing.*; 
public class FrmeA extends javax.swing.JFrame { 
    // private JComboBox cbx1; 
    // private JLabel lbl1; 
     //private ArrayList<String> Name=new ArrayList<String>(); 
     //private ArrayList<String> Id=new ArrayList<String>(); 


     FrmA1 f1=new FrmA1(); 
     Statement TmpFlxTSt=null; 
     ResultSet TmpFlxTRs=null; 
     GContnStr GCS=new GContnStr(); 
     Object ob= new Object(); 

    public FrmeA() { 
     initComponents(); 
    } 


/*public void combo(){ 

    try{ 
       GCS.GContnStr(); 
       TmpFlxTSt= GCS.GCotnStr.createStatement(); 
       String select = "Select StudName,StudId from studentmaster"; 
       TmpFlxTRs = TmpFlxTSt.executeQuery(select); 
       while(TmpFlxTRs.next()) 
        { 
         Name.add(TmpFlxTRs.getString("StudName")); 
         cbx.addItem(Name); 
         Id.add(TmpFlxTRs.getString("StudId")); 
       } 
       for(int i=0;i<Name.size();i++){ 
       System.out.println(Name.get(i).toString()); 
        } 
       for(int i=0;i<Id.size();i++){ 
       System.out.println(Id.get(i).toString()); 
        } 

         //String addname=TmpFlxTRs.getString("StudName"); 
         //Name.add(addname); 
         //addname.toString(); 
         //cbx.addItem(addname); 




        TmpFlxTRs.close(); 
        TmpFlxTSt.close(); 
     } 
      catch(Exception e){ 
       System.out.println(e); 

    } 

}*/ 

    public void combo1(){ 

    try{ 
       GCS.GContnStr(); 
       TmpFlxTSt= GCS.GCotnStr.createStatement(); 
       String select = "Select StudName from studentmaster"; 
       TmpFlxTRs = TmpFlxTSt.executeQuery(select); 

        while(TmpFlxTRs.next()) 
        { 
         String addname=TmpFlxTRs.getString("StudName"); 
         addname.toString(); 

        cbx.addItem(addname); 
         ob=cbx.getSelectedItem(); 
        } 
        //ob=cbx.getSelectedItem(); 
        String st=ob.toString(); 
        combo2(st); 
        //TmpFlxTRs.close(); 
        //TmpFlxTSt.close(); 
     } 
      catch(Exception e){ 
       System.out.println(e); 

    } 

} 


public void combo2(String Name){ 

    try{ 
       GCS.GContnStr(); 
       TmpFlxTSt= GCS.GCotnStr.createStatement(); 
       System.out.println(Name); 
       String select = "Select StudId from studentmaster where StudName='"+Name+"'"; 
       TmpFlxTRs = TmpFlxTSt.executeQuery(select); 

        while(TmpFlxTRs.next()) 
        { 
         Txt01.setText(TmpFlxTRs.getString("StudId")); 
         System.out.println(); 
        } 

        TmpFlxTRs.close(); 
        TmpFlxTSt.close(); 
     } 
      catch(Exception e){ 
       System.out.println(e); 

    } 

} 

private void cbxActionPerformed(java.awt.event.ActionEvent evt) {          

}         

    public static void main(String args[]) { 
     java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       FrmeA fr=new FrmeA(); 
       fr.combo1(); 
       //fr.combo1(); 
       fr.setVisible(true); 
        //fr.initconn(); 
      } 
     }); 
    } 

    // Variables declaration - do not modify 
    private javax.swing.JButton CmdA; 
    private javax.swing.JButton CmdD; 
    private javax.swing.JButton CmdE; 
    private javax.swing.JTable FlxT; 
    private javax.swing.JTextField Txt01; 
    private javax.swing.JComboBox cbx; 
    private javax.swing.JComboBox cbx2; 
    private javax.swing.JButton cmdQ; 
    private javax.swing.JPanel jPanel1; 
    private javax.swing.JPanel jPanel2; 
    private javax.swing.JPanel jPanel3; 
    private javax.swing.JScrollPane jScrollPane1; 
    private javax.swing.JLabel lbl; 
    // End of variables declaration 
} 
+1

다음 번에 질문과 관련이없는 경우 주석 코드를 삭제하십시오. 그리고 당신의 문제를 보여주는 최소한으로 코드를 간소화하십시오. – SJuan76

답변

0

콤보 상자를 채우고 나면 selectedItem이 바로 나타납니다.

ob=cbx.getSelectedItem(); 

사용자는 당신은 appropiate 리스너 (나는 그것을하는 ActionListener해야한다고 생각)의 상태 변화에 관한 논리를 설정해야합니다 그것을

을 변경하고 리스너를 추가 할 수있는 충분한 시간이 없었습니다 모니터링하고자하는 콤보 박스로 이동하십시오.