Java setting shortcut key and hotkey for menu item and button in swing

In Java Swing, you can set shortcut keys and hotkeys for menu items and buttons using the setAccelerator method of the JMenuItem class and the setMnemonic method of the AbstractButton class.

Here's an example of how to do this for a JMenuItem:

refer to‮tfigi:‬idea.com
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;

public class MenuItemExample extends JFrame {

    public MenuItemExample() {
        super("Set Shortcut Key for JMenuItem");

        // Create a new menu bar
        JMenuBar menuBar = new JMenuBar();

        // Create a new menu
        JMenu fileMenu = new JMenu("File");

        // Create a new menu item with a shortcut key of CTRL+N
        JMenuItem newItem = new JMenuItem("New");
        newItem.setAccelerator(KeyStroke.getKeyStroke("control N"));

        // Add the menu item to the menu
        fileMenu.add(newItem);

        // Add the menu to the menu bar
        menuBar.add(fileMenu);

        // Set the menu bar to the frame
        setJMenuBar(menuBar);

        // Set the size, location and visibility of the frame
        pack();
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }

    public static void main(String[] args) {
        new MenuItemExample();
    }
}

In this example, we create a JMenuItem component and set its shortcut key using the setAccelerator method. The KeyStroke.getKeyStroke("control N") method is used to create the KeyStroke object with the CTRL+N key combination. We then add the JMenuItem to a JMenu and add the JMenu to a JMenuBar. Finally, we set the JMenuBar to the JFrame using the setJMenuBar method.

Here's an example of how to set a hotkey for a button:

import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JFrame;

public class ButtonExample extends JFrame {

    public ButtonExample() {
        super("Set Hotkey for JButton");

        // Create a new button with the text "OK"
        JButton okButton = new JButton("OK");

        // Set the hotkey for the button to ALT+O
        okButton.setMnemonic('O');
        okButton.setDisplayedMnemonicIndex(1);

        // Add the button to the frame
        add(okButton);

        // Set the size, location and visibility of the frame
        pack();
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }

    public static void main(String[] args) {
        new ButtonExample();
    }
}

In this example, we create a JButton component and set its hotkey using the setMnemonic method. The setDisplayedMnemonicIndex method is used to specify the index of the character in the button's text that should be underlined to indicate the hotkey. In this case, we specify an index of 1, which corresponds to the second character in the text ("O"). We then add the JButton to the JFrame.

When you run these examples, the JMenuItem and JButton will have the shortcut key and hotkey set, respectively.