![]() |
Модераторы: javastic, AntonSaburov |
![]() ![]() ![]() |
|
satellite1977 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 7.8.2007 Репутация: нет Всего: нет |
Привет всем. Сделал программку в которой использовал класс Canvas. На экране отображаются таблица в виде вертикальных и горизонтальных линий и символы (буквы) с помощью drawLine и drawString соответственно. Запускал на NOIKA и SAMSUNG - все ок. Дал другу на Siemens C65, после чего он мне сообщил, что не отображаются символы. Пришлось скачать siemens c65 smtk и проверить на эмуляторе - так и есть. Использую netBeans, добавив туда платформу siemens, компилирую и вижу, что именно drawString не работает. Может кто знает в чем дело?
|
|||
|
||||
nagliyvred |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 2.10.2005 Репутация: 3 Всего: 3 |
Скорее всего проблема в кодировке. Переведите все в utf-8.
|
|||
|
||||
GhostMasterNet |
|
|||
Илья ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 6.9.2006 Репутация: 3 Всего: 3 |
А ещё лучше, напиши свой шрифт, поскольку на разных телефонах символы отображаются по-разному.
Тему шрифта можно найти поиском. |
|||
|
||||
satellite1977 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 7.8.2007 Репутация: нет Всего: нет |
похоже так придется и сделать, потому что ничего не получается
|
|||
|
||||
satellite1977 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 7.8.2007 Репутация: нет Всего: нет |
Я вообще в отрубе - drawImage тоже не работает. Хотел нарисовать символы и сделать метод, отображающий их в нужных мне местах, но не тут то было. Не пойму, неужели siemens c65 такое г..но.
Хотя написано что MIDP 2.0 поддерживает. Это то, что касается drawString Основной класс: public class Midlet extends MIDlet { Display display; public Midlet() { } public void startApp() { display = Display.getDisplay(this); NewClass n = new NewClass(); display.setCurrent(n); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } } Класс графики: public class NewClass extends Canvas { public void paint(Graphics g) { g.drawString("hello", 50, 50, g.LEFT); } public NewClass() { setFullScreenMode(true); } } |
|||
|
||||
SatanClaus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 20.6.2007 Репутация: 3 Всего: 3 |
Попробуй вот такой Canvas:
Добавлено через 1 минуту и 27 секунд Может у тебя эмулятор плохой, или ты на девайсе смотришь? |
|||
|
||||
satellite1977 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 7.8.2007 Репутация: нет Всего: нет |
Даааааа, все равно не работает. Вроде API такой как у всех, на девайсе один раз только смотрел - также как и на эмуляторе не работало. Ну его на хрен этот C65 )))
|
|||
|
||||
darf |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 6.4.2007 Репутация: 1 Всего: 1 |
Насколько я помню, C65, это MIDP1. А ты вызываешь setFullScreenMode(true);, которого там нет. Прога вообще падать должна при запуске.
|
|||
|
||||
SatanClaus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 20.6.2007 Репутация: 3 Всего: 3 |
Siemens C65 - это MIDP2, но все-равно стоит попробовать setFullScreenMode(true) убрать...
|
|||
|
||||
darf |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 6.4.2007 Репутация: 1 Всего: 1 |
Точно, перепутал с C60.
Но проблема, я подозреваю, кроется в том, что в конструкторе нужно вызывать метод предка командой super, а так фактически никакая канва не создается. public NewClass() { super(); } |
|||
|
||||
SatanClaus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 20.6.2007 Репутация: 3 Всего: 3 |
Я читал, что вообще конструктор предка вызывать не стоит, потому что могут быть проблемы...
Хотя, только SIEMENSовские программеры знают, может проблема и в этом. Не у всех же, как у людей ![]() |
|||
|
||||
darf |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 6.4.2007 Репутация: 1 Всего: 1 |
Бессовестно врут. Наоборот, если не вызывать, будут проблемы. А сименсы как раз отличаются тем, что на них код отлаживать лучше - больше багов можно найти. |
|||
|
||||
satellite1977 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 7.8.2007 Репутация: нет Всего: нет |
Если Канва не создается, то каким же образом работают команды, например, drawLine?
А насчет SetFullScreen - так это я уже позже добавил, подумал - вдруг поможет ))) И еще: Вчера пробовал это на реальном девайсе sony ericson k750i, модель продвинутая и я думаю никаких проблем с реализацией java там быть не может. Так вот, там та же картина что и с C65 ))) А на моей nokia n72 все пашет ок. Это сообщение отредактировал(а) satellite1977 - 16.8.2007, 10:47 |
|||
|
||||
satellite1977 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 7.8.2007 Репутация: нет Всего: нет |
Оказывается...........drawString("hello", 20 ,20, g.LEFT) - работает на моей Nokia, но для C65 одного лишь параметра LEFT недостаточно - нужен еще, например, g.TOP. Т.е. нужно указать как горизонтальное так и вертикальное выранивание.
drawString ("hello, 20, 20 , g.LEFT | g.TOP) - работает ))) Вот и вся проблема. Спасибо за помощь ))) |
|||
|
||||
![]() ![]() ![]() |
FAQ раздела лежит здесь! |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |