Try this example:
package test;
import javax.swing.*;
import java.awt.event.KeyEvent;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MainFrame {
public static void main(String[] args) {
JMenu jMenu = new JMenu("test");
JMenuItem i1 = new JMenuItem("Test Item");
i1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, KeyEvent.CTRL_MASK));
i1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "Ctrl+X key pressed");
}
});
jMenu.add(i1);
JMenuItem i2 = new JMenuItem("Test Item");
i2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Y, KeyEvent.CTRL_MASK));
i2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "Ctrl+Y key pressed");
}
});
jMenu.add(i2);
JMenuItem i3 = new JMenuItem("Test Item");
i3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, KeyEvent.CTRL_MASK));
i3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "Ctrl+D key pressed");
}
});
jMenu.add(i3);
JMenuBar bar = new JMenuBar();
bar.add(jMenu);
JFrame frame = new JFrame();
frame.setSize(400, 300);
frame.setJMenuBar(bar);
frame.setVisible(true);
}
}
If it won't work problem in your operation system: it catches these combinations and doesn't trace its to Java.