| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java ME (J2ME) > LWUIT |
| Автор: 404NotFound 12.11.2010, 19:01 |
| Доброго времени суток. Подскажите пожалуйста, кто работал с данной библиотекой, где бы найти нормальное руководство по ней, или хотя бы перечень всех функций используемый в ней. Работать на абум как то не хочеться. |
| Автор: poulmart 13.11.2010, 20:44 |
| Внутри поставки есть документация(для старта хватит) https://lwuit.dev.java.net/ http://lwuit.blogspot.com/ Желательно знание английского (у меня с этим проблема). Рускоязычных ресурсов я не нашел. Если это не поможет обращайся. В принципе библиотека нормальная для мобил от 2009 и младше. |
| Автор: 404NotFound 13.11.2010, 21:23 | ||
Ок. Тогда если можно, несколько вопросов, я лучше их приведу вместе к годом:
Первое: Правильно ли я написал обработчик событий ( f.setCommandListener(this); ) - т.к. он зачеркнутый Второе: Кнопка получилась на всеь экран. Как ее уменьшить? Третье: Видимо связанное со вторым - поле TextField не видно на экране (т.к. скорее всего его перекрывает кнопка). |
| Автор: poulmart 14.11.2010, 01:17 |
| Первое: Правильно ли я написал обработчик событий ( f.setCommandListener(this); ) - т.к. он зачеркнутый Правильно, но если он зачеркнутый - то значит Deprecated. Вот цитата из Api doc: (Наводишь на метод и смотришь Alt+F1) setCommandListener public void setCommandListener(ActionListener commandListener) Deprecated. use add/removeCommandListener instead A listener that is invoked when a command is clicked allowing multiple commands to be handled by a single block Parameters: commandListener - the command action listener Второе: Кнопка получилась на всеь экран. Как ее уменьшить? Третье: Видимо связанное со вторым - поле TextField не видно на экране (т.к. скорее всего его перекрывает кнопка). поменяй на другой LayotManger (Например BoxLayot) получим: вместо f.setLayout(new BorderLayout()); f.addComponent("Center", new Label("I am a Label")); // ИМХо лучше писать BorderLayout.CENTER f.addComponent("Center",textArea); f.addComponent("Center",tButton); f.setCommandListener(this); ставим f.setLayout(new BoxLayout(BoxLayout.Y_AXIS)); f.addComponent( new Label("I am a Label")); f.addComponent(textArea); f.addComponent(tButton); f.addCommandListener(this); Смотрим результат. Вариант 2 f.setLayout(new BorderLayout()); f.addComponent(BorderLayout.NORTH, new Label("I am a Label")); f.addComponent(BorderLayout.CENTER,textArea); f.addComponent(BorderLayout.SOUTH,tButton); f.addCommandListener(this); Добавлено через 14 минут и 36 секунд Еще Код корявый Вместо Command cmd =ae.getCommand(); if (cmd.getCommandName().equals("Test")) { System.out.println("Pointer pressed at (" + 1 + ", " + 2 + ")");} 1. Задай константу private final static int COMMAND_ID_TEST = 1; 2. Создание команды Command test = new Command ("Test",COMMAND_ID_TEST); 3. Листенер if (ae.getCommand()!=null){ switch(ae.getCommand().getId()){ case COMMAND_ID_TEST: System.out.println("Pointer pressed at (" + 1 + ", " + 2 + ")"); break; default: System.out.println("UNKNOW COMMAND ID"); } |
| Автор: 404NotFound 14.11.2010, 18:26 |
| Спасибо за очень развернутый ответ! |
| Автор: 404NotFound 16.11.2010, 17:22 |
| И снова добрый день! Еще парочку вопросов, если можно. Первое: как правильно написать обработчик событий для кнопки. Т.е. нажимаю на кнопку и что-то происходит. Второе: Таблица в LWUIT - как обратиться к конкретной ячейке, что то в нее ввести и как из нее получить введеное значение |
| Автор: poulmart 17.11.2010, 19:19 |
| 1. Вариант. 1 final Button button = new Button("Old Text"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { // Something do } }); Вариант. 2 - я уже описывал 2. table.getModel().getValueAt(row, column); Добавлено через 6 минут и 1 секунду 2. table.getModel.setValueAt(row, column, value); Ну и документацией поактивнее надо пользоваться (вопросы очень нубовские). |
| Автор: 404NotFound 20.11.2010, 10:29 |
| И снова добрый день. С документацией работаю активно, но на многие вопросы ответа не нахожу. Сегодня на повестке дня у меня вот какой вопрос. Таблицы в LWUIT. Создаю новую таблицу (редактируемую), заполненную по умолчанию значениями. при считавании значения table.getModel().getValueAt(0, 0) - получаю то, что и находиться в ячейке. С этим ОК. при принудительной записи в ячейку с помощью table.getModel().setValueAt(0, 0, "oooo") значение в ячейке обновляеться - с эти тоже все ОК. Однако, если вручную ввожу изменения в ячейку (в эмуляторе стираю значени по умолчанию и что либо ввожу). На экране таблица обновляеться, но при обращении с помощью table.getModel().getValueAt(0, 0) - я получаю старое, не измененное значение. Подскажите, что может быть. |
| Автор: 404NotFound 21.11.2010, 23:29 |
| Проблема решилась банально. На эмуляторе почему-то ячейка не обновлялась, на реальном телефоне все ОК |
| Автор: 404NotFound 24.11.2010, 16:18 |
| И вновь добрый день! Знающие, подскажите пожалуйста, как подключить возможность ввода русских символов в LWUIT. Как я понял этот вопрос состоит из двух подвопросов: 1) Если клавиатура виртуальная, для сенсорных телефонов - как сделать я понял. Если возможно, дайте ссылку на кодировку русских символов в юникоде в формате /uxxxx 2) Если клавиатура аппаратная. Вопрос несколько сложнее, я так понимаю надо сделать в файле ресурса локализацию. А как потом ее подключить? Если возможно, на второй вопрос ответьте с примером. Искренне Ваш, блуждающий 404_not_found |
| Автор: oxigen 25.11.2010, 17:10 |
| 404, можно я твою темку поэксплуатирую? ;) Попытался разобраться с LWUIT - затык в самом начале возник. Проект должен билдиться с помощью ANT В build.xml указал <property name="wtk.midp.version" value="2.0"/> <property name="wtk.cldc.version" value="1.1"/> Версия WTK 2.5.1 При верификации вываливается ошибка [wtkpreverify] ERROR: floating-point constants should not appear гугл говорит, что эта ошибка не должна выпадать при cldc 1.1 Кто-то может подсказать, в чем может быть дело или поделиться своим работающим build.xml ? |
| Автор: 404NotFound 30.11.2010, 09:32 | ||
Сам с собой общаюсь, но все же. Один ответ на свой вопрос я нашел, если кому будет полезно, то, чтобы вводить русские символы в LWUIT в TextField с аппаратной клавиатуры нужно вставить следующий код. (единственное, что нужно поминять символы юникода для русских символов, их я тоже нашел в той же википедии):
|
| Автор: 404NotFound 4.12.2010, 12:34 |
| Возникла очередная проблема. Если я ввожу данные с сенсорной клавиатуры в поле, то на экране данные отображаются. Но при попытки считать значение из поля - я получаю дырку от бублика :( Причем если данные вводяться с аппаратной клавиатуры - то все ок. |
| Автор: bapxat 14.12.2011, 00:58 |
| Демка от LWUIT не смогла установиться на nokia 7610. Видимо из-за несовпадения версий cldc. В мидлете он изначально был 1.1. В манифесте попробовал его заменить на 1.0. Прога установилась, но запускаться не хочет. Один человек на форуме задал вопрос на подобную тему (www.java.net/node/686677). Ему ответили "cldc 1.0 is not supported by LWUIT you can try porting LWUIT to such a device but its not trivial." Кто нибудь знает про "porting" мидлетов под определенные платформы? на 7610 платформа S60, Symbian 7.0 |
| Автор: 404NotFound 14.12.2011, 17:21 |
| В данном случае porting - портировать - т.е. переписать весь код этой библиотеки, "but its not trivial" - но это очень не просто (не тривиально). И я как бы не натыкался на портирование версии этой библиотеки под cldc 1.0. Для более старых устройств рекомендую копнуть в сторону polish |