Я пытаюсь протестировать компонент Swing, который отображает меню при нажатии клавиши контекстного меню. Я просто фокусируюсь на компоненте и отправляю пресс-релизы с помощью awt Robot. Он работает в Windows, но не в Linux. Вот пример кода Java, который показывает целочисленный код ключевого события. При этом для события клавиши устанавливается значение 0. Однако при физическом нажатии клавиши оно отображается правильно как 525.
Я пытаюсь протестировать компонент Swing, который отображает меню при нажатии клавиши контекстного меню. Я просто фокусируюсь на компоненте и отправляю пресс-релизы с помощью awt Robot. Он работает в Windows, но не в Linux. Вот пример кода Java, который показывает целочисленный код ключевого события. При этом для события клавиши устанавливается значение 0. Однако при физическом нажатии клавиши оно отображается правильно как 525.
public class ContextMenuKeyTest { public static void main(String[] args) { javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { JFrame frame = new JFrame("Test"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel(); JLabel label = new JLabel("Type something"); JTextField comp = new JTextField("Hello World!"); comp.setPreferredSize(new Dimension(300,100)); panel.add(label); panel.add(comp); comp.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) {} @Override public void keyPressed(KeyEvent e) { label.setText("Pressed: " + e.getKeyCode()); } @Override public void keyReleased(KeyEvent e) {} });