简体   繁体   中英

Different Enter and mouse click event

i have a button that call a method, in this method it call another method to connect to the DB and return results, if results positive, change the labels and make a button ENABLED, and if the results is negative, the Button still disabled

the problem is, i have set in the TF a keytyped event, if someone type something new in it, disable the btnEditar:

            public void keyTyped(KeyEvent e) {                  
                    btnEditar.setEnabled(false);
                    btnDeletar.setEnabled(false);
            }

i dont want this event "capture" the enter to disable the button there is a way to do that or i have to think i another logic way?

As others have pointed out, there are other ways to do this besides using a KeyListener . I will respond to your original attempt below. A KeyListener is a functional and easy tool to use for this job.

Use keyPressed instead of keyTyped , and then you'll have a valid key code that you can use to ignore enter presses:

public void keyPressed(KeyEvent e) { // not keyTyped!
    if (e.getKeyCode() != KeyEvent.VK_ENTER) {
        btnEditar.setEnabled(false);
        btnDeletar.setEnabled(false);
    }
}

If you insist on using keyTyped for some reason, you won't have a key code available , but you can cover most cases by checking the character for a newline or carriage return:

public void keyTyped(KeyEvent e) {
    if (e.getKeyChar() != 13 && e.getKeyChar() != 10) {
        btnEditar.setEnabled(false);
        btnDeletar.setEnabled(false);
    }
}

Use a DocumentListener to listen for changes to the text in the Document. Read the section from the Swing tutorial on How to Write a Document Listener .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM