Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > Работа с текстом в GameCanvas?


Автор: Kalisnik 17.5.2012, 11:14
Как в GameCanvas реализовать окно для вывода текста и, главное, поле для ввода текста?

Автор: oxigen 17.5.2012, 11:32
Вручную в методе paint.

Вывод текста - просто рисуешь текст в нужном месте через Graphics.drawString(String str, int x, int y, int anchor)
Можно и прямоугольник вокруг него нарисовать Graphics.drawRect(int x, int y, int width, int height)

Ввод текста аналогично. Слушаешь нажатия кнопок, изменяешь строку и рисуешь ее в paint.
Но сделать нормально, очень муторная задача. Перемещение курсора реализовывать, вставку текста...
Я для ввода текста показываю TextBox. Оно не так красиво и удобно для пользователей, как сразу на канвасе вводить. Но работает без багов.

Автор: Kalisnik 17.5.2012, 14:28
А зачем метод paint? Везде, во всех примерах его используют. Зачем? По сути это же обычный метод, так как он переопределен. К тому же где то упоминалось что он может быть вызван самой vm или ams, не помню точно, что может привести к непредсказуемым последствиям. У меня все рисуется замечательно без этого метода.

Да, муторно. ( но с другой стороны, один раз сделать движок для ввода текста и потом спокойно его используешь во всех своих проектах. smile

Автор: oxigen 17.5.2012, 16:13
Цитата(Kalisnik @ 17.5.2012,  14:28)
А зачем метод paint? Везде, во всех примерах его используют. Зачем? По сути это же обычный метод, так как он переопределен. К тому же где то упоминалось что он может быть вызван самой vm или ams, не помню точно, что может привести к непредсказуемым последствиям. У меня все рисуется замечательно без этого метода.

Не совсем понял. А где тогда рисуете, если не в paint?

UPD: А. если gameCanvas, то через getGraphics наверное. Да, так наверное даже лучше.

Автор: Kalisnik 17.5.2012, 23:24
Цитата(oxigen @  17.5.2012,  16:13 Найти цитируемый пост)
Не совсем понял. А где тогда рисуете, если не в paint?


Да, через getGraphics smile Получаем буфер и рисуем в нем что хотим. 

Автор: Kalisnik 18.5.2012, 17:40
Кстати, случайно наткнулся на SVG-графику. В NB есть свой встроенный редактор, правда он малофункционален. Собственно с помощью этого SVG-редактора, интерфейс пользователя создается в считанные минуты.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)