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

Xử lý sự kiện nhấn phím Enter trong Java

Xin các bạn chỉ giúp:

Mình có 1 JFrame, trong đó có 1 buttonA (btnA), đã viết lệnh cho sự kiện click:

private void btnAActionPerformed(java.awt.event.ActionEvent evt) {
// Các câu lệnh...
}
Bây giờ mình muốn là khi nhấn phím Enter từ bàn phím, thì chương trình sẽ tự gọi sự kiện click của buttonA ra chạy, không cần phải bấm chuột nữa.

Có phải dùng sự kiện formKeyPressed hay không?
 
private void formKeyPressed(java.awt.event.KeyEvent evt) {
        if (evt.getKeyCode() == KeyEvent.VK_ENTER)
        {
            // Mình không biết xử lý làm sao chỗ này để gọi sự kiện click của buttonA cả!!!!!!
        }
}



Mong các bạn chỉ giúp! Xin cảm ơn!
 
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

private void formKeyPressed(java.awt.event.KeyEvent evt) {
if (evt.getKeyCode() == KeyEvent.VK_ENTER)
{
btnAActionPerformed();
}
}
0 Lượt thích

Viết vậy đâu có được bạn. Nó gạch lỗi mà.
0 Lượt thích

Action đó bạn set cho btnA nên muốn enter nó thực hiện thì bạn phải enter khi btnA có focus, sau lệnh init bạn chuyển focus qua btnA

btnA.requestFocus()

khi btnA có focus thì bạn enter gọi nó chạy được rồi.
0 Lượt thích

Action đó bạn set cho btnA nên muốn enter nó thực hiện thì bạn phải enter khi btnA có focus, sau lệnh init bạn chuyển focus qua btnA

btnA.requestFocus()

khi btnA có focus thì bạn enter gọi nó chạy được rồi.
Bạn ơi, trên JFrame của mình có 1 TextField: txtNoiDung để nhập và 1 btnGui. Lúc formLoad lên thì focus nằm ở txtNoiDung cho mình nhập liệu vào. Làm sao nhập xong không cần bấm gì mà focus chuyển qua button Gửi được?
Mình cần khi nhập xong, bấm Enter là nó tự gửi. Giống như form Đăng nhập vậy.

Xin cảm ơn nhiều!
0 Lượt thích

JTextField cũng có event ActionPerformed khi enter như nút đó bạn.
0 Lượt thích

JTextField cũng có event ActionPerformed khi enter như nút đó bạn.
Bạn ơi chỉ mình cụ thể hơn được không? Mình mới học java, còn gà mờ quá.
Có phải viết thế này không?

- Ở event ActionPerformed của TextField, viết thế này:

private void txtNoiDungActionPerformed(java.awt.event.ActionEvent evt) {
        
this.btnGui.requestFocus();
    }
- Tiếp theo làm sao nữa bạn? Viết sự kiện KeyPressed của JFrame à?

Xin cảm ơn!


0 Lượt thích

private void txtNoiDungActionPerformed(java.awt.event.ActionEvent evt) {
        
this.btnGui.requestFocus();
    }  
thay

this.btnGui.requestFocus();
bởi các câu lệnh khi nhấn nút đó bạn.

Bạn thử thay bởi

javax.swing.JOptionPane.showMessageDialog(this, "Đã nhập: " + txtNoiDung.getText());
sẽ hiểu ngay.

this.btnGui.requestFocus(); dùng để đưa focus về nút btnGui trong trường hợp bạn muốn nhấn nút btnGui bằng phím enter.
0 Lượt thích

nếu bạn muốn thao tác nhanh, có nghĩa là sau khi nhập text bạn enter thì nó sẽ gửi luôn
thì bạn cho lệnh btnActionPerformed nằm trong lệnh txtActionPerformed luôn
ví dụ như thế này

private void txtNoiDungActionPerformed(java.awt.event.ActionEvent evt) {
        
// TODO add your handling code here:
        
btGuiActionPerformed(evt);
    }
hy vọng sẽ giúp ích
0 Lượt thích

Xin cảm ơn mọi người đã nhiệt tình chỉ dẫn mình. Giờ mình đã hiểu cách nó hoạt động rồi.
0 Lượt thích

hì, nếu ngay từ đầu bạn nói là nhập xong nội dung textfield rồi enter để thực hiện lệnh thì hỗ trợ nhanh hơn đó.
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