Toggle Theme Editor
Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Charcoal

Hỏi: Load Data vào JComboBox

Discussion in 'Xây dựng ứng dụng chạy console, applet' started by khanhglvn, 26/6/10.

  1. khanhglvn

    khanhglvn New Member

    Em có 1 ComboBox , 1 Cột trong CSDL . em muốn cột đó vào Combobox nhưng không phải bắt đầu từ số 0. vì ComboBox bắt đầu từ số 0. mà em muốn Update thì update theo id, mà trong SQL bắt đầu từ số 1.

    Code em viết như thế lày:
    Vector<String> data = new Vector<String>();
    while(rs.next()){
    data.addElement(rs.getString("EmployeeID"));
    cboEmpID.setModel(new DefaultComboBoxModel(data));
    }

    Nó luôn đưa cột đâu tiên của CSDL vào vị trí số 0 em muốn nó đưa vào đúng vị trí như của SQL. tức là số 1
     
  2. JackV

    JackV Administrator Staff Member

    Ðề: Hỏi: Load Data vào JComboBox

    Cách 1 là khi bấm nút cập nhật thì lấy index từ combobox cộng thêm 1 cho đơn giản, đỡ phải ràng buộc nữa, còn nếu theo ý của bạn thì chèn dòng gì đó cho index 0 là xong

    Code:
    Vector<String> data = new Vector<String>();
    [COLOR="Red"]data.addElement("Xin vui long chon");[/COLOR]
    while(rs.next()){
    data.addElement(rs.getString("EmployeeID"));
    cboEmpID.setModel(new DefaultComboBoxModel(data));
    }
     
  3. nhtera

    nhtera New Member

    Ðề: Hỏi: Load Data vào JComboBox

    Mình nghĩ giá trị hiển thị và id trong combobox nên tách biệt nhau . Ví dụ bạn có 1 category có id và name vậy thì việc đưa
    vào combobox mỗi id thì sẽ ko hay . Vậy nên bạn tạo một lớp mô tả đối tượng đó trong database có 2 trường id và name và override lại phương thức ToString() cho hiển thị name còn lúc add vào combobox ta sẽ add cả đối tượng đó , lúc lấy giá trị của combobox được chọn thì ta chỉ cần cast về đối tượng đó và gọi đến thuộc tính id .
     
  4. khanhglvn

    khanhglvn New Member

    Ðề: Hỏi: Load Data vào JComboBox

    À cái này hum qua em làm ra rồi ! em thêm +1 vào khi nhập. :) giờ thì em gặp 1 lổi là em muốn check pass word, trong cột Employee , Nếu pass word trên giao diện trùng với password trong CSDL thì được quyền thay đổi password .
    try {
    while (rs.next()) {
    String id = rs.getString("EmployeeID");
    String pas = rs.getString("EmpPassword");
    emp = new employee(id, pass);
    list.add(emp);
    String ids = emp.ID;
    String epas = emp.password;
    }
    } catch (SQLException ex) {
    Logger.getLogger(frChange.class.getName()).log(Level.SEVERE, null, ex);
    }


    if (eid.equals(emp.ID) && pass.equals(emp.password)) {
    check = true;
    } else {
    JOptionPane.showMessageDialog(null, "Employee ID or Old Password not match ! Please try again", "WARNING", JOptionPane.WARNING_MESSAGE);
    check = false;
    return;
    }

    if(check = true){
    String sql = "update employees set EmpPassword=? where EmployeeID = ?";
    try {
    ptm = con.prepareStatement(sql);
    ptm.setString(1, eid);
    ptm.setString(2, ecpass);
    ptm.executeUpdate();
    JOptionPane.showMessageDialog(null,"Change password complete!","INFORMATION",JOptionPane.INFORMATION_MESSAGE);
    } catch (SQLException ex) {
    Logger.getLogger(frChange.class.getName()).log(Level.SEVERE, null, ex);
    }

    }
     
  5. khanhglvn

    khanhglvn New Member

    Ðề: Hỏi: Load Data vào JComboBox

    Ah! thôi hum nay em làm được rồi hi hi ! cam ơn mấy huynh. :)
     
  6. hoang_sa1

    hoang_sa1 New Member

    cho em hỏi ví dụ mình muốn load combobox của bảng cha trong dbkhi chọn rồi những thành phần con của bảng cha đó hiện lên combobox thứ 2 ạ
    vd: lớp a (combobox1)-------> combobox2: hoa, tài, hiền
    lớp b(combobox1)-----> combobox2: toàn, mi, hoàng
     
  7. Joe

    Joe Thành viên VIP

    use ItemListener to listen to the selected item and then start a JDialog with a new JComboBox which listens again to its items and so on. This way allows you to listen an endless chain of JComboBox.
     

Chia sẻ trang này

Loading...