Это действительно озадачивает меня.
У меня есть JTextComponent
, для которого я добавил контекстное меню вырезать \ копировать \ вставить, щелкнув правой кнопкой мыши, с помощью JPopupMenu и DefaultEditorKit.Cut\Copy\PasteAction()
.
JMenuItem cutItem = new JMenuItem(new DefaultEditorKit.CutAction());
JMenuItem copyItem = new JMenuItem(new DefaultEditorKit.CopyAction());
JMenuItem pasteItem = new JMenuItem(new DefaultEditorKit.PasteAction());
Для каждого действия я добавил прослушиватель действий, который захватывает текст JTextComponent, который я хочу использовать в функции.
final ActionListener textFieldListener = new ActionListener() {
@Override public void actionPerformed(ActionEvent e){someGlobalFunction(textComponent.getText());
}
};
...
cutItem.addActionListener(textFieldListener );
copyItem.addActionListener(textFieldListener );
pasteItem.addActionListener(textFieldListener );
Тем не менее, единственный текст, за который я могу ухватиться - это строка, которой она была до Я вырезал \ вставлял в компонент, а не после.
Есть ли очевидное решение для этого?