0
나는 MySQL 테이블과 스윙 인터페이스를 디자인했습니다. 첫 번째 콤보 상자 값 (브랜드 이름)을 선택하면 두 콤보 상자를 넣을 수 있고 두 번째 콤보 상자 값 (선택한 브랜드에서는 사용 가능한 항목)은 mysql 쿼리를 통해로드됩니다. 내 코드JComboBox의 MySQL 테이블 값
try{
String url = "jdbc:mysql://localhost:3306/databasename";
String login = "root"; String password = ""; Connection con = DriverManager.getConnection(url, login, password);
try{
comboBox1 = new JComboBox(); comboBox1.setEditable(false);
comboBox1.addItem("- - -");
Statement stmt1=null;
String query1 = "SELECT brand FROM brands";
stmt1 = con.createStatement();
ResultSet rs1 = stmt1.executeQuery(query1);
while(rs1.next()) {comboBox1.addItem(rs1.getString(1));}
comboBox2 = new JComboBox(); comboBox2.setEditable(false);
comboBox1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event){
String comboBox1Selected=comboBox1.getSelectedItem().toString();
try{
Statement stmt2=null;
String query2 = "SELECT item FROM "+comboBox1Selected+"";
stmt2 = con.createStatement();
ResultSet rs2 = stmt2.executeQuery(query2);
while(rs2.next()) {comboBox2.addItem(rs2.getString(1));}
}
catch (SQLException ex1) {JOptionPane.showMessageDialog(null,"Failed to Item-List..!"); ex1.printStackTrace(); return;}
}
});
}
catch (SQLException ex2) {JOptionPane.showMessageDialog(null,"Failed to Brand-List..!"); ex2.printStackTrace(); return;}
}
catch (SQLException ex3) {ex3.printStackTrace(); JOptionPane.showMessageDialog(null,"Unable to Connect..!"); return;}
문제는 콤보 내가 1 콤보 상자에서 다른 선택을 선택하면, 두 번째 콤보 그들이 나타납니다 (이하 "이전의 값을"피하지 않는, 제대로 작동 그겁니다입니다 ...입니다 새로운 값).
어떤 이유 일 수 있습니까? ..? 누구든지 설명 할 수 있니 ..? 미리 감사드립니다.
을 새로운 항목을 추가하기 전에 ... 사람이 그것을했다! 감사합니다 StanislavL :) – Maharan