e có 1 cái table “waterTable” và 1 cái button “buy” .Sở dĩ e gắn event vào table và button để khi click đồng thời vào 1 dòng table và button thì sẽ i++ ,nhưng mà khi click nhiều lần trên table thì i++ sẽ tăng nhiều lần mặc dù chỉ ấn 1 lần button , tại sao thế ạ ?. Mặc dù đã thêm if vào nhưng vẫn i++ nhiều lần theo click
Thắc mắc về event click trên table trong javaswing
Lưu ý:
Đăng mã bằng cách chép-dán dạng văn bản, không nên chụp hình.
Sai rồi bạn! Sai rất là to nữa.
Sao bạn có thể nhấn đồng thời 2 chỗ? Màn hình cảm ứng à? Hay dùng 2 con trỏ chuột? Hay chuột và bàn phím?
Nhưng dù bạn có thể nhấn 2 vị trí khác nhau cùng 1 lúc thì đoạn mã trên của bạn sai bét luôn.
Khi bạn nhấn 1 dòng trên bảng (waterTable
) thì nút buy
sẽ được thêm 1 bộ lắng nghe sự kiện (event listener) như trên (i++
). Và cứ thế bạn nhấn 10 lần trên bảng thì sẽ có 10 bộ lắng nghe sự kiện được thêm vào buy
. Sau đó bạn nhấn nút buy
thì sẽ có 10 lần i++
xảy ra.
Bạn muốn chọn 1 món hàng sau đó mua, mà mỗi lần mua thì số lượng sẽ tăng lên 1? Thế thì chả liên quan gì đến bắt sự kiện ở bảng cả. Chỉ gán bắt sự kiện ở nút buy
1 lần, sau đó tăng số lượng dựa vào món đang được chọn là xong.
đúng là e còn nhiều thiếu sót thật cảm ơn a đã khai sáng, e chỉ dự định là khi click vào 1 món hàng trên table dc highlight rồi sau đó ấn buy để hiện lên thông báo rồi nhập số lượng vào