![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
JulT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 7.6.2005 Репутация: нет Всего: 1 |
Вообще есть JTextPane в нем текст,выделяем слово в JTextPane ,при нажатии правой клавиши я сделала выпадающее меню,когда жмем на один из пунктов меню у меня заместь выделенного слова в JTextPane вставляется кнопка с названием этого слова.Таких кнопок получается несколько,на каждую из них я повесила обработчик события.Также,на каждую из этих кнопок я повесила другое выпадающее меню,в котором находится пункт,нажимая на который мне нужно чтобы кнопка удалялась,а на ее место вставлялось слово которое было до этого.Вопрос в следующем:1)как удалить нужную мне кнопку
2) нужно ли хранить все кнопки в отдельном массиве,для того чтобы с каждой в отделности можно было работать 3) где фиксировать координаты кнопки,потому что если не фиксировать,то выпадающая менюшка которая относится к кнопкам всегда вылазит только на последней созданной кнопке Надеюсь поняли меня,ХЭЛП МИ ПЛИЗ |
|||
|
||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
1. Название темы должно отражать ее суть!
2. textPane.remove(button) 3.
Как-то их хранить завсисит от того как спроектировано приложение, вообщем это вполне приемлемый способ. Только лучше использовать не массив, а какая нибудь коллекцию, например ArrayList. 4.
Это координаты относительно JTextPane, с помощью класса SwingUtilities их можно сконвертировать в координаты относительно экрана или другого компонента. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
JulT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 7.6.2005 Репутация: нет Всего: 1 |
не удаляет у меня он кнопку,делаю так:
ничего не удаляет,менюшка вылазит не понятно где ![]() |
|||
|
||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Меню отображается не там где надо потому что когда ты пишешь pop2.show(button, location.x, location.y) - то x, y должны быть смещением относительно button, т.е. что-то типа такого:
А насчет того почему кнопка не удаляется сложно сказать, по идее должна, попробуй модифицировать код так:
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
JulT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 7.6.2005 Репутация: нет Всего: 1 |
Ничего не помагает,есть 2 кнопки,одна называется Кнопка1 ее я создала первой, вторая наз Кнопка2,
в результате менюшка вылазит только на Кнопке2 и соответственно вывод в консоль постоянно такой: Call remove button: Кнопка2 ![]() ![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Вот и источник проблемы: ты неправильно определяешь с какой кнопкой работать. Попробуй получать нужную кнопку так:
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
JulT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 7.6.2005 Репутация: нет Всего: 1 |
Не удаляется,но в консоли пишет уже разные названия кнопок
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Теперь модифицируй метод removeButton():
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
JulT |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 7.6.2005 Репутация: нет Всего: 1 |
А он мне подчеркивает
первый раз такую запись for вижу |
||||
|
|||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 31 Всего: 159 |
||||
|
||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Замени:
на
Ты используешь не JDK 1.5? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
JulT |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 7.6.2005 Репутация: нет Всего: 1 |
я использую JDK 1.4
Написала так как вы сказали :
но все равно не удаляет ![]() Добавлено @ 11:27 чуть не забыла,в консоли ничего не отрабатвается
|
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Значит кнопка не добавлена в jTextPane2. Тут уже надо анализировать весь код, особенно тот место где ты добавляешь кнопку в jTextPane2.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
JulT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 7.6.2005 Репутация: нет Всего: 1 |
добавляю сто процентов,ведь я ее вижу своими глазами, при нажатии на нее у меня другое окошко вылазит,Боже мой что же делать.Вставляю я вот так вот:
помогите,не бросайте меня |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Попробуй сделать так:
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
JulT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 7.6.2005 Репутация: нет Всего: 1 |
сделала,ну и что теперь,кнопки пропали сами по себе,а мне ж нужно чтобы я сама их удалять могла
![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Так ты вызывай replaceSelection() только для того диапазона где стоит нужная кнопка:
Добавлено @ 12:22 Я имел в виду в методе removeButton() вместо remove() вызывай replaceSelection(). Только для каждой кнопки придется помнить в какое место она вставлялась, для этого можно использовать например HashMap. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
JulT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 7.6.2005 Репутация: нет Всего: 1 |
а что записывать в HashMap, в качестве ключа кнопку,а в качестве значения что,там же получается 2 значения,одно начало кнопки,второе конец
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Создай класс для хранения позиции:
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
JulT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 7.6.2005 Репутация: нет Всего: 1 |
простите,а вы бы могли чуточку пояснить как работают эти 2 метода,в кратце хотя бы:
![]() |
|||
|
||||
LSD |
|
||||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
equals()
1. Проверяем тот же это самый объект или нет (это не обязательно, но в большинстве случаев повышает производительность)
2. Проверяем что объект не null и того типа что и данный:
3. Приводим переданый объект к типу ButtonPos и сравниваем каждое поле:
hashCode() - возвращает некоторое число характеризующее данный объект, что-то наподобие контрольной суммы объекта. Только назначение другое, используется в объектах наподобие HashMap. В данном случае считаем ее как зависимость от хеш кодов всех полей объекта. Эти два метода в основном используются в коллекциях. Сравнение объектов в коллекциях происходит с помощью метода equals(). А hashCode() используется классами Hashtable, HashMap и т.д. Есть одно правило, если для двух разных объектов equals() возвращает true, то и hashCode() должен возвращать одинаковое число. Обратное не обязательно. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||||
|
|||||||
JulT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 7.6.2005 Репутация: нет Всего: 1 |
ой спасибо вам огромное за пояснения
![]() ![]() ![]() сорри |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Что-то наподобие такого:
Тут правда есть один момент: когда мы меняем текст, то положение кнопок меняется, и надо это как-то отслеживать. Пока я не знаю как это лучше сделать, но еще подумаю на эту тему. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
JulT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 7.6.2005 Репутация: нет Всего: 1 |
спасибо огромное за помощь,не все получается при удалении кнопок,текст вставляется на место кнопки между другим словом,но об этом уже в понедельник,а то у меня уже сил нет.
Спасибо еще раз LSD ![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Пожалуйста
![]() -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Вообщем вот, что у меня получилось:
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
JulT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 7.6.2005 Репутация: нет Всего: 1 |
спасибо большое,но тут есть один моментик.дело в том,что при нажатии на кнопочку,у меня должно появлятся другое окошко,а в данном случае она(конпка) исчезает,мне нужно,чтобы кнопка исчезала тогда,когда мы нажимаем правой клавишей на ней,потом вылазит менюшка,в которой я выбираю пункт убрать кнопку,вот,как такое сделать
![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Это совсем не сложно
![]()
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
JulT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 7.6.2005 Репутация: нет Всего: 1 |
спасибо ОГРОМНОЕ ВАМ
![]() А теперь наверное наступает самое сложное: я разобрала предложение, в нем находятся кнопочки, теперь мне всю эту структуру нужно где-то хранить,не знаю где,или в базе данных,или может в файле каком-то. Надо чтобы когда пользователь выбрал просмотр,ему сразу же в JTextPane вставлялось это разобранное предложение со всеми кнопками и событиями для этих кнопок.Это вообще реально сделать |
|||
|
||||
JulT |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 7.6.2005 Репутация: нет Всего: 1 |
поробую сама разобраться,если что спрошу
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Для начала попробуй его просто сериализовывать (но есть у меня сильное подозрение, что так работать не будет).
Добавлено @ 14:12 Да, и не забудь все свои листенеры сделать сериализуемыми. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |