Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java ME (J2ME) > drawString на c65 |
Автор: satellite1977 7.8.2007, 19:12 |
Привет всем. Сделал программку в которой использовал класс Canvas. На экране отображаются таблица в виде вертикальных и горизонтальных линий и символы (буквы) с помощью drawLine и drawString соответственно. Запускал на NOIKA и SAMSUNG - все ок. Дал другу на Siemens C65, после чего он мне сообщил, что не отображаются символы. Пришлось скачать siemens c65 smtk и проверить на эмуляторе - так и есть. Использую netBeans, добавив туда платформу siemens, компилирую и вижу, что именно drawString не работает. Может кто знает в чем дело? |
Автор: nagliyvred 7.8.2007, 19:48 |
Скорее всего проблема в кодировке. Переведите все в utf-8. |
Автор: GhostMasterNet 8.8.2007, 11:39 |
А ещё лучше, напиши свой шрифт, поскольку на разных телефонах символы отображаются по-разному. Тему шрифта можно найти поиском. |
Автор: satellite1977 9.8.2007, 10:50 |
похоже так придется и сделать, потому что ничего не получается |
Автор: satellite1977 9.8.2007, 17:51 |
Я вообще в отрубе - 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 9.8.2007, 18:19 | ||
Попробуй вот такой Canvas:
Добавлено через 1 минуту и 27 секунд Может у тебя эмулятор плохой, или ты на девайсе смотришь? |
Автор: satellite1977 13.8.2007, 11:26 |
Даааааа, все равно не работает. Вроде API такой как у всех, на девайсе один раз только смотрел - также как и на эмуляторе не работало. Ну его на хрен этот C65 ))) |
Автор: darf 14.8.2007, 12:39 |
Насколько я помню, C65, это MIDP1. А ты вызываешь setFullScreenMode(true);, которого там нет. Прога вообще падать должна при запуске. |
Автор: SatanClaus 14.8.2007, 13:01 |
Siemens C65 - это MIDP2, но все-равно стоит попробовать setFullScreenMode(true) убрать... |
Автор: darf 14.8.2007, 14:16 |
Точно, перепутал с C60. Но проблема, я подозреваю, кроется в том, что в конструкторе нужно вызывать метод предка командой super, а так фактически никакая канва не создается. public NewClass() { super(); } |
Автор: SatanClaus 14.8.2007, 14:47 |
Я читал, что вообще конструктор предка вызывать не стоит, потому что могут быть проблемы... Хотя, только SIEMENSовские программеры знают, может проблема и в этом. Не у всех же, как у людей ![]() |
Автор: darf 15.8.2007, 09:31 | ||
Бессовестно врут. Наоборот, если не вызывать, будут проблемы. А сименсы как раз отличаются тем, что на них код отлаживать лучше - больше багов можно найти. |
Автор: satellite1977 16.8.2007, 10:42 |
Если Канва не создается, то каким же образом работают команды, например, drawLine? А насчет SetFullScreen - так это я уже позже добавил, подумал - вдруг поможет ))) И еще: Вчера пробовал это на реальном девайсе sony ericson k750i, модель продвинутая и я думаю никаких проблем с реализацией java там быть не может. Так вот, там та же картина что и с C65 ))) А на моей nokia n72 все пашет ок. |
Автор: satellite1977 16.8.2007, 11:03 |
Оказывается...........drawString("hello", 20 ,20, g.LEFT) - работает на моей Nokia, но для C65 одного лишь параметра LEFT недостаточно - нужен еще, например, g.TOP. Т.е. нужно указать как горизонтальное так и вертикальное выранивание. drawString ("hello, 20, 20 , g.LEFT | g.TOP) - работает ))) Вот и вся проблема. Спасибо за помощь ))) |