![](images/chestnut/misc/left.gif) |
JAVA Micro Edition Низкоуровневое программирование мобильных телефонов. |
13.11.2008, 05:18
|
#31
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Получение команд в формах
Админы, сорри, я тут не по теме наоффтопил ![schem](images/smilies/blush.gif) , можно это перенести в отдельную тему, например, в раздел FAQ. Может кому-то пригодится. Зайдёт кто-нибудь, кто нифига не понимает в Java, почитает и может чего-то новое узнает =)
|
(Offline)
|
|
13.11.2008, 05:46
|
#32
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Получение команд в формах
Ещё такой вопрос. Как мне вызвать destroyApp() из какого-нибудь класса, если я не знаю заранее имя главного класса мидлета? Можно сделать метод, который нужно будет вызывать из главного класса примерно так:
coolclass.setMIDlet(this);
Но опять же проблема, а какой тип данных у главного класса? Такой код не катит:
import javax.microedition.lcdui.*; import javax.microedition.midlet.MIDlet; public class coolclass extends Canvas{ public static MIDlet midlet; public void setMIDlet(MIDlet m){ midlet=m; } ... ... ... }
Оно компилируется, но не работает.
|
(Offline)
|
|
13.11.2008, 08:15
|
#33
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Получение команд в формах
Ух я дорвался. Вот ещё что непонятно.
Почему такая запись работает:
И такая работает:
String s=new String("Строка");
, а если я по аналогии хочу сделать свой класс, который тоже строку получает при инициализации, то почему первый вид записи не работает? Чем String лучше моего класса?
|
(Offline)
|
|
13.11.2008, 08:53
|
#34
|
|
Ответ: Получение команд в формах
возможно у строки определен оператор (или конструктор) преобразования в строку из указателя на строку (это второй вариант)
|
|
|
13.11.2008, 13:53
|
#35
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Получение команд в формах
Ээээ... А по-ламерски можно, а то я не понял? =)
|
(Offline)
|
|
13.11.2008, 14:45
|
#36
|
|
Ответ: Получение команд в формах
читай что такое указатель
|
|
|
13.11.2008, 15:09
|
#37
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Получение команд в формах
Ну я читал как-то давно, когда пытался учить С++. Указатель - это типа переменная, которая содержит в себе адрес другой переменной. Его можно использовать вместо самой переменной. (правда я тогда так и не понял нафига он нужен). А что, в Джаве тоже указатели есть?
Это слишком что-то заумное:
"возможно у строки определен оператор (или конструктор) преобразования в строку из указателя на строку (это второй вариант)"
|
(Offline)
|
|
13.11.2008, 22:16
|
#38
|
Оптимист
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений (для 259 пользователей)
|
Ответ: Получение команд в формах
public static coolclass midlet;
так будет правильней.
и лучше в startApp
midlet=this;
тогда из любого класса
coolclass.midlet.destryApp(true);
|
(Offline)
|
|
13.11.2008, 22:22
|
#39
|
Оптимист
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений (для 259 пользователей)
|
Ответ: Получение команд в формах
Image создается, чтобы в МР в любом месте работал drawText и т.д. Graphics экрана известен только в paint, а он из МР недоступен. Отрисовка возможна только на Graphics а чей он, экрана или Image системе всё равно.
paint вызывается после setCurrent, при любых изменениях размера ( например setFullScreen), принудительно после repaint, после возвращения мидлета из паузы. Примерно так.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
14.11.2008, 02:24
|
#40
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Получение команд в формах
public static coolclass midlet;
так будет правильней.
и лучше в startApp
midlet=this;
тогда из любого класса
coolclass.midlet.destryApp(true);
|
Не, так не подходит. Про это я знал. Ладно, это пофиг, просто никак не могу отбросить мечту делать всё максимум универсальным. =)
Image создается, чтобы в МР в любом месте работал drawText и т.д. Graphics экрана известен только в paint, а он из МР недоступен. Отрисовка возможна только на Graphics а чей он, экрана или Image системе всё равно.
paint вызывается после setCurrent, при любых изменениях размера ( например setFullScreen), принудительно после repaint, после возвращения мидлета из паузы. Примерно так.
|
Я это и имел ввиду. ![:-)](images/smilies/grins.gif) Я полночи экспериментировал, столько новых мелочей узнал =)
|
(Offline)
|
|
14.11.2008, 05:50
|
#41
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Получение команд в формах
Круто. Я просто рад до ж#%ы!!! Всё так легко стало получаться. Ща переделываю предыдущий проект =) Выкинул целую кучу ненужной фигни!!! Вместо условно бесконечного цикла перенёс всё в keyPressed(), теперь перерисовка экрана происходит только при нажатии на кнопку, а не постоянно =))) Мне только и нужно, чтобы экран перерисовывался только при каком-то действии пользователя, там в основном менюшки. Вот только сейчас даже не знаю как лучше сделать иерархию меню. Ну да ладно, что-нибудь придумаю! Всем огромное спасибо!!!
|
(Offline)
|
|
14.11.2008, 13:59
|
#42
|
Оптимист
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений (для 259 пользователей)
|
Ответ: Получение команд в формах
Не, так не подходит. Про это я знал. Ладно, это пофиг, просто никак не могу отбросить мечту делать всё максимум универсальным. =)
|
а кто мешает основной класс делать во всех программах с именем, например Main? Это конечно не так круто какк coolclass, но зато универсально.
тогда Main.instance.destroyApp() будет работать всегда ![:)](images/smilies/smile.gif)
|
(Offline)
|
|
14.11.2008, 15:27
|
#43
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Получение команд в формах
Не, никто не мешает =) Так и делаю. Только у меня главный класс всегда называется a.class, а класс, который наследник канваса (ну или как там оно правильно говорится) - b.class. =)
|
(Offline)
|
|
14.11.2008, 15:39
|
#44
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Получение команд в формах
Сообщение от Phantom_wc
Не, никто не мешает =) Так и делаю. Только у меня главный класс всегда называется a.class, а класс, который наследник канваса (ну или как там оно правильно говорится) - b.class. =)
|
Зачем такие корявые имена использовать? А если будет десять классов? Пол алфавита перебирать?
|
(Offline)
|
|
14.11.2008, 15:59
|
#45
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Получение команд в формах
ViNT, нуу... ![schem](images/smilies/blush.gif) Фиг его знает... Краткость - сестра таланта. Меня вообще некоторые ходячим обфускатором называют, потому что логику в названиях моих переменных только я вижу ![Laught](images/smilies/DDD.gif) Привык всё делать так, уж не знаю почему. ![:dontknow:](images/smilies/dontknow.gif) Да и тем более я так и не понял, как пользоваться Proguard'ом, уже и Хэлп перелистал и как только не пробовал, всё время пишет, что не может найти Мэйн класс. Так что пусть хотя бы так запутано будет ![Laught](images/smilies/DDD.gif)
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:00.
|