/** * Returns a popup menu when right-clicking on the edit field. * * @return the menu, null if non available */ protected JPopupMenu getPopupMenu() { JPopupMenu result; JMenuItem menuitem; result = new JPopupMenu(); menuitem = new JMenuItem("Copy", GUIHelper.getIcon("copy.gif")); menuitem.setAccelerator(KeyStroke.getKeyStroke("control pressed C")); menuitem.addActionListener(e -> copyToClipboard()); result.add(menuitem); menuitem = new JMenuItem("Paste", GUIHelper.getIcon("paste.gif")); menuitem.setAccelerator(KeyStroke.getKeyStroke("control pressed V")); menuitem.setEnabled(isEditable() && ClipboardHelper.canPasteStringFromClipboard()); menuitem.addActionListener(e -> pasteFromClipboard()); result.add(menuitem); if (m_PopupMenuCustomizer != null) { result.addSeparator(); m_PopupMenuCustomizer.customizePopupMenu(this, result); } return result; }
@Override public void keyPressed(KeyEvent e) { if (KeyUtils.isCopy(e)) { e.consume(); copyToClipboard(); } else if (KeyUtils.isPaste(e) && ClipboardHelper.canPasteStringFromClipboard()) { e.consume(); pasteFromClipboard(); } if (!e.isConsumed()) super.keyPressed(e); } });