Kiểm tra Nhập ký tự cho JTextField

Discussion in 'Xây dựng ứng dụng desktop standalone' started by kirasasaki, 19/8/11.

  1. kirasasaki New Member

    Mình có 1 số câu hỏi muốn nhờ các bạn giúp đỡ :
    1. Mình không muốn người dùng nhập các ký tự đặc biệt và khoảng trống thì phải làm ntn ?
    2. Mình không muốn người dùng nhập số và khoảng trống ở đầu thì dùng hàm gì để kiểm tra ?

    Các bạn gợi ý cho mình với nhớ :(.
    Thanks các bạn trước :)
  2. kirasasaki New Member

    Ðề: Kiểm tra Nhập ký tự cho JTextField

    PHP:
    class MyKeyListener extends KeyAdapter {
          public 
    void keyPressed(KeyEvent e) {
            if (
    e.getKeyChar() == '!') {
            }
    e dùng hàm này để xác định ký tự đc ấn vào JTextField đấy , nhưng không biết sau khi xác định xong thì làm ntn để nó không cho nhập vào , bên C# có e.Handle = false thì trong Java làm ntn ạ :<
  3. DucMjnh1992 Thành viên BQT

    Ðề: Kiểm tra Nhập ký tự cho JTextField

    Trong sự kiện KeyReleased(sau khi 1 phím được nhấn) của jTextField bạn đặt đoạn code này vào thử xem nhé trong đó txtText là jTextField bạn ko muốn người dùng nhập các ký tự đặc biệt tham số đầu của method replaceAll là regex kiểm tra ký tự đặc biệt bạn không muốn người dùng nhập ký tự nào chỉ cần thêm ký tự đó vào bên trong [] là được lưu ý 1 vài ký tự đặc biệt phải thêm dấu \ ở trước VD: \\, \.,... còn tham số thứ 2 là khi gặp ký tự đặc biệt thì bạn muốn thay thế nó thành ký tự gì ở đây mình để rỗng. Mình chỉ biết cách này(vừa ngồi làm thử) còn mình chỉ biết bên C# thôi :D.

    PHP:
    txtText.setText(txtText.getText().replaceAll("[!';:]"""));
  4. kirasasaki New Member

    Ðề: Kiểm tra Nhập ký tự cho JTextField

    Cách của bạn ổn đấy :D .
    Bạn Demo thử cho mình 1 dòng cái KeyReleased đc k , mình k biết bắt sự kiện này thì điều kiện là gì cả :< thanks bạn trước :D

    Hóa ra sự kiện KeyPress mà không viết điều kiện cũng làm đc :))
    Thanks bạn nhiều lắm :D
  5. DucMjnh1992 Thành viên BQT

    Ðề: Kiểm tra Nhập ký tự cho JTextField

    Trong sự kiện KeyReleased thì nó sẽ thay thế cả ký tự mà bạn vừa nhập vào còn trong sự kiện keyPress thì nó chỉ thay thế các ký tự trước nó còn ký tự vừa nhập vào không bị thay thế. Còn bạn nói điều kiện trong keyReleased là sao? Mình không hiểu ý bạn lắm?

    PHP:
    private void txtTextKeyReleased(java.awt.event.KeyEvent evt) {                                    
            
    // TODO add your handling code here:
            
    txtText.setText(txtText.getText().replaceAll("[!';:]"""));
        }   
    Chỉ cần cho nó vào trong event keyReleased là được mà?
  6. forget721 Member

    Ðề: Kiểm tra Nhập ký tự cho JTextField

    Chào bạn!
    Trước đây mình có từng gặp vấn đề tương tự như của bạn
    Bạn có thể setDocument cho đồi tượng nhập liệu mà bạn muốn
    Cụ thể nếu muốn ko có khoảng trắng làm như sau
    Định nghĩa 1 lớp
    PHP:
    class NoSpace extends PlainDocument {

        @
    Override
        
    public void insertString(int offsString strAttributeSet athrows BadLocationException {
            if (
    str == null) {
                return;
            }
            
    char[] str.toCharArray();
            
    StringBuffer tempString=null;
            for (
    int j 0s.lengthj++)
            if(
    s[j]!==" "){
                
    tempString.append(s[j]);
            }
            
    super.insertString(offs, new String(tempString), a);
        }
    }
    trong chương trình bạn chỉ cần gọi
    PHP:
    jTextField.setDocument(new NoSpace());
    Ngoài ra việc mở trộng lớp PlainDocument còn hữu dụng trong 1 số trường hợp như chỉ muốn nhập chữ hoa, chữ thường, giới hạn số kí tự...
    Trên đây là 1 số điều mình tham khảo trên mạng chia sẻ lại cùng bạn
  7. cungayngo New Member

    Ðề: Kiểm tra Nhập ký tự cho JTextField

    nếu bjo tớ muốn làm ng lại!! là chỉ cho hiển thị 1 chữ số là 0 với 1 thì làm thế nào bn???
  8. asas222001 New Member

    Ðề: Kiểm tra Nhập ký tự cho JTextField

    Bạn ơi, nếu viết đoạn mã trên thi khuyết mất các kí tự [ ] " , vậy làm sao để bắt lỗi cho những kí tự này
  9. DucMjnh1992 Thành viên BQT

    Ðề: Kiểm tra Nhập ký tự cho JTextField

    Các ký tự đặc biệt bạn có thể dùng kết hợp thêm dấu \ Ví dụ: \[\] Các ký tự đặc biệt khác cũng tương tự.
    Chúc bạn thành công
  10. asas222001 New Member

    Ðề: Kiểm tra Nhập ký tự cho JTextField

    thank bạn nhiều
  11. Dark1512 New Member

    Các bạn cho mình hỏi, nếu muốn nhập 1 số thực vào textField nhưng bắt lỗi nhập quá 1 dấu "." thì làm như thế nào?
    VD: số cần nhập là 20.5 chẳng hạn, sau khi nhập 1 dấu "." rồi, thì các thao tác với "." trên bàn phím sẽ ko nhận nữa để tránh các trg hợp như là 20...5 hay là 20.5.5 ...
  12. thanhlikes09bkdn Active Member

    Mình cũng có làm cái calc liên quan đến cái này.
    String string = "1.2";
    //Neu chua co thi them :D
    if(str.indexOf(".") == -1) {
    str = str + ".";
    }
    Tư duy của mình là thế không biết có giúp gì được bạn không!

Chia sẻ trang này



Mua bán - rao vặt - nha trang Ve may bay di Ha Noi | Ve may bay di Vinh | Ve may bay di Hue | Ve may bay di Da Nang | Ve may bay di Nha Trang | Ve may bay di Da Lat | Ve may bay di Phu Quoc | Ve may bay di Sai Gon | Ve may bay di TPHCM | Ve may bay di Buon Me Thuot | Ve may bay di Hai Phong | Ve may bay di Dong Hoi | Ve may bay Vietjet Air | Phong ve may bay Vietjet Air | Ve may bay Vietnam Airlines | Phong ve may bay Vietnam Airlines | Ve may bay Vietnam Airlines | Ve may bay gia re | Ve may bay | Mua ve may bay | Jetstar | Vietnam Airlines | Air Asia | Tiger Airways | Ve may bay di My | Vietjet Air | Ve may bay di Ha Noi | Ve may bay di Da Nang | Ve may bay di Hai Phong | Ve may bay di Vinh