![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Andy_L20066 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 10.3.2008 Репутация: нет Всего: 1 |
Привет всем! У меня возникла такая задача: в JTextField нужно чтобы елемент '*' создавался у правого края, и начинал свое движения к левому.... при нажатии другой кнопки - должен появится еще один такой же символ, который уже будет двигаться слева направо... обое елемены могут встретися и должны отталкиватся...
Мне удалось реализовать движение одного елемента в текстовом филде, путем добавления пробелов к нему, но проблема в том что когда данные виводятся методом setText и в филде есть два символа - то они мигают поскоку перекриваются... Может у кого есть идеи как такое можно исправить, и вообще на правильном ли я пути? |
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 31 Всего: 159 |
Есть мнение, что для реализации подобного поведения, тебе нужно использовать всего одну строку, полностью состоящую из символов пробела (её длинна равняется длине текстового поля). Для каждой звездочки хранить текущую позицию. При каждом изменении позиции заменять пробел с исходной строке на зведочку, а на старую позицию ставить пробел. Совпадение позиций у 2 звезд - столконовение. При столкновении меняется направление движения, а это значить что нужно инвертировать знак шага (который прибавляется для смены позиции) для каждой звезды.
Надеюсь я понятно изложил |
|||
|
||||
| Andy_L20066 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 10.3.2008 Репутация: нет Всего: 1 |
Спасибо огромное, я попробую и подумаю еще....
просто на свингах очень мало опыта у меня... никаких задач с ним еще не решал... если что я еще напишу... |
|||
|
||||
| Andy_L20066 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 10.3.2008 Репутация: нет Всего: 1 |
Извините за беспокойство ... но хочу спросить еще одну вещь, чтобы узнать ваше мнение.... звезды уже движутся, ты правильно подсказал.... но если каждая звезда у меня ето отдельный обьект, который работает в своем потоке... как тогда определять что две звезды столкнулись, сравнивать две позиции... что-то пока нету никаких идей.... читаю книги о Threads in Swing...)
|
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 31 Всего: 159 |
Зачем в отдельном потоке? Делай все в одном.
|
|||
|
||||
| Andy_L20066 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 10.3.2008 Репутация: нет Всего: 1 |
Только сейчас увидел твой месадж... еще руки не дошли до програмы... но хочу сказать что в одном потоке вряд ли получится... а если там будет больше двух звездочок...?
может я тебя в чем то не понимаю.... могу выслать код в приватку чтоб ты поглядел... может подскажешь чьо я не правильно делаю... |
|||
|
||||
| Andy_L20066 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 10.3.2008 Репутация: нет Всего: 1 |
вроде удалось решить... наверное ето немного по ламерски... вообще хотелось какой то патерн использовать, а получилось немного скучновато... будем работать
|
|||
|
||||
| Andy_L20066 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 10.3.2008 Репутация: нет Всего: 1 |
есть мнение что можно к примеру перевести потоки в ждущий режим до того времени пока не освободится место для движения... хотя... не знаю пока |
|||
|
||||
| gibbzy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 25.1.2008 Репутация: нет Всего: 3 |
я бы сделал примерно так:
отслеживал позиции всех звёхдочек по XY координатам если X1 - X2|X2-X1 < 2 то двигать звёздочки в другую сторону ну это наверняка индусский вариант решения. Это сообщение отредактировал(а) gibbzy - 25.3.2008, 19:07 |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |