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:
- you need add
keylistenercomponent(of course) - the component must have focus
- the component must focusable (set focusable true)
- the component need request focus
- override
keytypedkeypressedorkeyreleasedretrievekeyevent- to check key typed in
keytyped, usegetkeychar() - to check key pressed or released in
keypressed,keyreleased, usegetkeycode()
- to check key typed in
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
Post a Comment