Это действительно озадачивает меня.
У меня есть 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 );
Однако единственный текст, который я могу удержать, — это строка, которая была до того, как я вырезал\вставил в компонент, а не после.
Есть ли какое-нибудь очевидное решение для этого?