Mang đến cho bạn hành trang là Kiến thức và Kinh nghiệm

Lựa chọn chủ đề bạn quan tâm

Cùng nhau thảo luận về các vấn đề

Hãy theo dõi chúng tôi nếu bạn thấy bổ ích

  1. Hỏi đáp IT
  2. Hỏi nhanh

Lập trình java - Xử lý sự kiện 2 combobox

2617 Lượt xem 9 Bình luận 0 Lượt báo xấu
Chào mọi người.em là newbie.nãy giờ tìm mãi mà không thấy có bài nào giống z.mong mọi người giúp đỡ.
Thế này.
em tạo 2 combobox.1 combobox là "Khối Lớp", 1 là "Lớp Học".2 combobox này dữ liệu đc lấy từ database.giờ e muốn lúc đầu combobox "Khối Lớp" sẽ hiện thị dữ liệu đầu tiên.khi chọn item từ combobox "Khối Lớp" thì combobox "Lớp Học" mới hiển thị dữ liệu theo điều kiện trùng với item đc select từ combobox kia.em chưa viết đc nên không có code.mong mọi người chỉ giúp.hoặc có code tương tự cho e tham khảo với
Câu trả lời

- Bạn đã sẵn sàng thảo luận về chủ đề này. Hãy bấm "Viết bình luận", bạn có thể lựa chọn sử dụng tài khoản Facebook hoặc Google++

- Vì sự phát triển của cộng đồng CNTT/CNPM tại Việt Nam!

Unknown user
No responses yet

Mục đích của ComboBox là để lựa chọn các giá trị nằm trong đó. Cái ComboBox "Lớp học" thực hiện nhận và hiển thị dữ liệu lên tự nhiên "ép" nó chi vậy? Còn nói cái ComboBox "Khối lớp" hiển thị dữ liệu đầu tiên thì bạn vào Properties, muốn cái nào set cái đó thôi chứ hỏi gì nữa.
0 Lượt thích

Khối 10 thì có: 10A, 10B, 10C, 10D, 10E...
Khối 11 thì có: 11A, 11B, 11C, 11D, 11E...
Khối 12 thì có: 12A, 12B, 12C, 12D, 12E...

Bắt sự kiện thay đổi của CBB1 rồi lấy giá trị được chọn truy vấn CSDL để gán vào CBB2 thôi.
Khó lắm đấy bạn à.
0 Lượt thích

Đúng ý mình rồi bạn. Bạn có thể giúp mình được không :)
0 Lượt thích

Gợi ý nhá:
viết hàm load dữ liệu lên combobox Khối lớp
thực hiện load dữ liệu lên comboxbox lớp học
Viết hàm load dữ liệu lên comboxbox Lớp học với biến truyền vào là mã khối lớp hoặc tên khối lớp tùy vào điều kiện câu truy cấn của bạn
trong sự kiện PropertyChange
gọi hàm load dữ liệu combobox lớp học truyền vào là giá trị của combobox khối lớp đang được chọn
0 Lượt thích

Cảm ơn bạn nhé, để mình làm thử :)
0 Lượt thích

Nguyễn Hữu Thanh giúp mình với.mình còn gà quá.mình chỉ viết đc 2 cái lấy dữ liệu cho combobox thui.không làm đc phần trong PropertyChange
Code:
 
// lấy dữ liệu cho combobox khối
    public void getDataCmbKhoi(){
        conn = connect.getConnect();
        Vector vmaKhoi = new Vector();
        Vector vtenKhoi = new Vector();
        try {
            st = conn.createStatement();
            rs = st.executeQuery("SELECT * FROM KHOI");
            while(rs.next()){
                vmaKhoi.add(rs.getString("MaKhoi"));
                vtenKhoi.add(rs.getString("TenKhoi"));
            }
            DefaultComboBoxModel Kmodel = new DefaultComboBoxModel(vtenKhoi);
            cmb_khoi.setModel(Kmodel);
            String get = (String) cmb_khoi.getSelectedItem();
          
        } catch (SQLException ex) {
            Logger.getLogger(frm_QL_HS.class.getName()).log(Level.SEVERE, null, ex);
        }
      
    }
    //lấy dữ liệu cho combobox Lớp
    public void getDataCmbLop(){
        conn = connect.getConnect();
        Vector vLop = new Vector();
        try {
            Statement st = conn.createStatement();
            ResultSet rss = st.executeQuery("SELECT MaLop,TenLop FROM LOP");
            while(rss.next()){
                vLop.add(rss.getString("TenLop"));
            }
            DefaultComboBoxModel Lmodel = new DefaultComboBoxModel(vLop);
            cmb_lop.setModel(Lmodel);
        } catch (SQLException ex) {
            Logger.getLogger(frm_QL_HS.class.getName()).log(Level.SEVERE, null, ex);
        }
      
    }


 
0 Lượt thích

Nguyễn Hữu Thanh giúp mình với.mình còn gà quá.mình chỉ viết đc 2 cái lấy dữ liệu cho combobox thui.không làm đc phần trong PropertyChange
Code:
 
// lấy dữ liệu cho combobox khối
    public void getDataCmbKhoi(){
        conn = connect.getConnect();
        Vector vmaKhoi = new Vector();
        Vector vtenKhoi = new Vector();
        try {
            st = conn.createStatement();
            rs = st.executeQuery("SELECT * FROM KHOI");
            while(rs.next()){
                vmaKhoi.add(rs.getString("MaKhoi"));
                vtenKhoi.add(rs.getString("TenKhoi"));
            }
            DefaultComboBoxModel Kmodel = new DefaultComboBoxModel(vtenKhoi);
            cmb_khoi.setModel(Kmodel);
            String get = (String) cmb_khoi.getSelectedItem();
          
        } catch (SQLException ex) {
            Logger.getLogger(frm_QL_HS.class.getName()).log(Level.SEVERE, null, ex);
        }
      
    }
    //lấy dữ liệu cho combobox Lớp
    public void getDataCmbLop(){
        conn = connect.getConnect();
        Vector vLop = new Vector();
        try {
            Statement st = conn.createStatement();
            ResultSet rss = st.executeQuery("SELECT MaLop,TenLop FROM LOP");
            while(rss.next()){
                vLop.add(rss.getString("TenLop"));
            }
            DefaultComboBoxModel Lmodel = new DefaultComboBoxModel(vLop);
            cmb_lop.setModel(Lmodel);
        } catch (SQLException ex) {
            Logger.getLogger(frm_QL_HS.class.getName()).log(Level.SEVERE, null, ex);
        }
      
    }
trong ComboBox sẽ có 1 sự kiện lắng nghe khi giá trị select thay đổi.
Khi sự kiện xảy ra, bạn lấy giá trị được cb.getSelected() ... !
Viết 1 hàm load dữ liệu dựa trên tham số truyên vào để set giá trị cho comboBox2.
Code:
public void getDataCmbLop(String MasolopTuComboBox1){ .... }
 
0 Lượt thích

Mình có thể sửa ntn:

Code:
 
// lấy dữ liệu cho combobox khối
    public void getDataCmbKhoi(){
        conn = connect.getConnect();
        Vector vmaKhoi = new Vector();
        Vector vtenKhoi = new Vector();
        try {
            st = conn.createStatement();
            rs = st.executeQuery("SELECT * FROM KHOI");
            while(rs.next()){
                vmaKhoi.add(rs.getString("MaKhoi"));
                vtenKhoi.add(rs.getString("TenKhoi"));
            }
            DefaultComboBoxModel Kmodel = new DefaultComboBoxModel(vtenKhoi);
            cmb_khoi.setModel(Kmodel);
            String get = (String) cmb_khoi.getSelectedItem();
       
        } catch (SQLException ex) {
            Logger.getLogger(frm_QL_HS.class.getName()).log(Level.SEVERE, null, ex);
        }
   
    }
    //lấy dữ liệu cho combobox Lớp
    public void getDataCmbLop(int khoilop){
        conn = connect.getConnect();
        Vector vLop = new Vector();
        try {
            Statement st = conn.createStatement();
            ResultSet rss = st.executeQuery("SELECT MaLop,TenLop FROM LOP where makhoilop="+khoilop);
            while(rss.next()){
                vLop.add(rss.getString("TenLop"));
            }
            DefaultComboBoxModel Lmodel = new DefaultComboBoxModel(vLop);
            cmb_lop.setModel(Lmodel);
        } catch (SQLException ex) {
            Logger.getLogger(frm_QL_HS.class.getName()).log(Level.SEVERE, null, ex);
        }
   
    }


Code:

private void cobKhoiLopPropertyChange(java.beans.PropertyChangeEvent evt) {                                         
int idkhoilop=x; // x là giá trị mã khối lớp mà bạn lấy về được từ cobobox khối lớp
getDataCmbLop(idkhoilop);
    }

"SELECT MaLop,TenLop FROM LOP where makhoilop="+khoilop
chổ này là trong csdl của bạn có makhoilop hay là ten khách thì thay thế tương ứng
hoặc nếu bảng lớp của bạn lưu khối lớp là tên khối lớp thì truyền vào tên khối lớp kiển String
 
0 Lượt thích

Cảm ơn bạn rất nhiều :)
0 Lượt thích

Từ khóa tìm kiếm

Câu trả lời mới nhất

Tin tuyển dụng