Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: GUI и Java FX приложения > Copy,Paste,Cut |
Автор: Swatch 2.8.2007, 18:59 |
Добрый вечер. Поставили такую задачку, не знаю, как решить. Есть множество всяких компонентов на форме (текстфилды, текстэрии, таблички и т.д). Есть менюшка, в которой стандартно прописаны пункты: Copy, Paste, Cut. я знаю, что с клавиатуры и копирование, и вырезание, и вставка работают. Надо сделать так, чтобы и из этих пунктов меню все работало. Причем, надо сделать, чтобы вставлялось не только скопированный в данном приложении текст, но и текст, который копировался вне. Думаю, по аналогии с делфи, надо обратиться к какому-то глобальному клипборду. Вопрос в том, КАК это сделать??? Наверное, есть какие-то стандартные методы. Помогите, пожалуйста. Поделитесь, если есть, примерами. |
Автор: LSD 2.8.2007, 22:29 | ||
|
Автор: Swatch 3.8.2007, 07:02 |
Спасибо, с копированием более-менее разобралась... вопрос другой. У меня на форме установлен кард лайаут, в нем 28 панелек на каждой минимум по 4 текстовых поля. как теперь указать, из какого поля копировать, вырезать и куда вставлять? Копирование, вырезание и вставку делаю из меню, то есть соответствующие процедуры пишу в классе главной формы. как узнать, в каком компоненте курсор или выделенный текст. Помогите, пожалуйста. |
Автор: AlexeyVorotnikov 3.8.2007, 09:52 |
В классе KeyboardFocusManager есть методы getFocusOwner() и getGlobalFocusOwner() с помощью которых можно найти компонент, у которого фокус. |
Автор: Swatch 3.8.2007, 10:39 |
хммм.... подскажите еще, пожалуйста, как можно у владельца фокуса взять текст... то есть мы определили, кто владелец. но как теперь добраться до самого текста?! |
Автор: AlexeyVorotnikov 3.8.2007, 10:55 |
JTextComponent.getSelectedText() |
Автор: Swatch 3.8.2007, 12:08 |
Я, возможно туплю, но что-то так и не поняла, как это сделать. напишите, пожалуйста, какой-нить хоть маленький пример. Как использовать вместе методы: JTextComponent.getSelectedText() и getFocusOwner() и getGlobalFocusOwner(). |
Автор: AlexeyVorotnikov 3.8.2007, 12:19 | ||
Чисто теоретический пример (на практике не проверял):
|
Автор: Swatch 3.8.2007, 12:32 | ||
Написала вот так:
Не работает:( ![]() |
Автор: AlexeyVorotnikov 3.8.2007, 12:36 |
Что именно не работает? |
Автор: LSD 3.8.2007, 13:08 |
Модератор: Пожалуйста, один топик - один вопрос. |
Автор: Swatch 3.8.2007, 13:40 |
Это был метож копирования. после нажатия на пункт меню Copy копирование не происходит. пишет "Text isn't selected". но текст в текстфилде я выделяю. |
Автор: AlexeyVorotnikov 3.8.2007, 13:51 |
Есть у меня подозрение, что в момент выбора пункта меню текстовый компонент теряет фокус и поэтому не находится этим методом. Дальше это дело надо дебажить более подробно. |
Автор: Swatch 6.8.2007, 07:58 |
Угу, у меня тож такое подозрение... но что все-таки мне делать с копированием? Может как-то определить панель, на котрой есть текстовый компонент, в котором выделен текст? а потом взять этот текст? как сделать копирование, вставку и вырезание?? ![]() ![]() ![]() |
Автор: dorogoyIV 6.8.2007, 09:40 |
если теряешь фокус, то вот есть пример: http://forum.vingrad.ru/index.php?showtopic=166347&view=findpost&p=1216518 |