java - Create a keyboard shortcut for a button -


i have jtable has delete button delete rows.

i want create shortcut, example when user selects row , presses 'delete' button on keyboard , line should deleted.

my line deleted jbutton1 perfectly.

        if (e.getsource() == keyevent.vk_delete) {             // delete row method     } 

but doesn't work.

i don't know exact problem because provide few code. however, can't use getsource() test key typed (pressed, or released). use getkeychar() , getkeycode().


the following explanation of code:

  1. you need add keylistener component(of course)
  2. the component must have focus
    1. the component must focusable (set focusable true)
    2. the component need request focus
  3. override keytyped keypressed or keyreleased retrieve keyevent
    1. to check key typed in keytyped, use getkeychar()
    2. to check key pressed or released in keypressed , keyreleased, use getkeycode()

import java.awt.*; import javax.swing.*; import java.awt.event.*;  public class test {     public static void main(string[] args) {         jframe f = new jframe();         f.setsize(new dimension(410, 330));         f.setdefaultcloseoperation(jframe.exit_on_close);         f.getcontentpane().setlayout(null);         jpanel panel = new jpanel();         panel.setbackground(color.green);         panel.setbounds(50, 50, 300, 200);          panel.addkeylistener(new mykeylistener()); // add keylistener         panel.setfocusable(true); // set focusable true         panel.requestfocusinwindow(); // request focus          f.getcontentpane().add(panel);         f.setvisible(true);     }      static class mykeylistener extends keyadapter {         @override         public void keytyped(keyevent e) {             if (e.getkeychar() == '\177') {                 // delete row method (when "delete" typed)                 system.out.println("key \"delete\" typed");             }         }          @override         public void keypressed(keyevent e) {             if (e.getkeycode() == keyevent.vk_delete) {                 // delete row method (when "delete" pressed)                 system.out.println("key \"delete\" pressed");             }         }          @override         public void keyreleased(keyevent e) {             if (e.getkeycode() == keyevent.vk_delete) {                 // delete row method (when "delete" released)                 system.out.println("key \"delete\" released");             }         }     } } 

Comments

Popular posts from this blog

c# - Operator '==' incompatible with operand types 'Guid' and 'Guid' using DynamicExpression.ParseLambda<T, bool> -