forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   JAVA Micro Edition (http://forum.boolean.name/forumdisplay.php?f=52)
-   -   Получение команд в формах (http://forum.boolean.name/showthread.php?t=7280)

Phantom 13.11.2008 05:18

Ответ: Получение команд в формах
 
Админы, сорри, я тут не по теме наоффтопил :@ , можно это перенести в отдельную тему, например, в раздел FAQ. Может кому-то пригодится. Зайдёт кто-нибудь, кто нифига не понимает в Java, почитает и может чего-то новое узнает =)

Phantom 13.11.2008 05:46

Ответ: Получение команд в формах
 
Ещё такой вопрос. Как мне вызвать destroyApp() из какого-нибудь класса, если я не знаю заранее имя главного класса мидлета? Можно сделать метод, который нужно будет вызывать из главного класса примерно так:
PHP код:

coolclass.setMIDlet(this); 

Но опять же проблема, а какой тип данных у главного класса? Такой код не катит:
PHP код:

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;
 }
...
...
...


Оно компилируется, но не работает.

Phantom 13.11.2008 08:15

Ответ: Получение команд в формах
 
Ух я дорвался. Вот ещё что непонятно.
Почему такая запись работает:
PHP код:

String s="Строка"

И такая работает:
PHP код:

String s=new String("Строка"); 

, а если я по аналогии хочу сделать свой класс, который тоже строку получает при инициализации, то почему первый вид записи не работает? Чем String лучше моего класса?

jimon 13.11.2008 08:53

Ответ: Получение команд в формах
 
возможно у строки определен оператор (или конструктор) преобразования в строку из указателя на строку (это второй вариант)

Phantom 13.11.2008 13:53

Ответ: Получение команд в формах
 
Ээээ... А по-ламерски можно, а то я не понял? =)

jimon 13.11.2008 14:45

Ответ: Получение команд в формах
 
читай что такое указатель

Phantom 13.11.2008 15:09

Ответ: Получение команд в формах
 
Ну я читал как-то давно, когда пытался учить С++. Указатель - это типа переменная, которая содержит в себе адрес другой переменной. Его можно использовать вместо самой переменной. (правда я тогда так и не понял нафига он нужен). А что, в Джаве тоже указатели есть?
Это слишком что-то заумное:
"возможно у строки определен оператор (или конструктор) преобразования в строку из указателя на строку (это второй вариант)"

Piligrim 13.11.2008 22:16

Ответ: Получение команд в формах
 
public static coolclass midlet;
так будет правильней.
и лучше в startApp
midlet=this;
тогда из любого класса
coolclass.midlet.destryApp(true);

Piligrim 13.11.2008 22:22

Ответ: Получение команд в формах
 
Image создается, чтобы в МР в любом месте работал drawText и т.д. Graphics экрана известен только в paint, а он из МР недоступен. Отрисовка возможна только на Graphics а чей он, экрана или Image системе всё равно.
paint вызывается после setCurrent, при любых изменениях размера ( например setFullScreen), принудительно после repaint, после возвращения мидлета из паузы. Примерно так.

Phantom 14.11.2008 02:24

Ответ: Получение команд в формах
 
Цитата:

public static coolclass midlet;
так будет правильней.
и лучше в startApp
midlet=this;
тогда из любого класса
coolclass.midlet.destryApp(true);
Не, так не подходит. Про это я знал. Ладно, это пофиг, просто никак не могу отбросить мечту делать всё максимум универсальным. =)
Цитата:

Image создается, чтобы в МР в любом месте работал drawText и т.д. Graphics экрана известен только в paint, а он из МР недоступен. Отрисовка возможна только на Graphics а чей он, экрана или Image системе всё равно.
paint вызывается после setCurrent, при любых изменениях размера ( например setFullScreen), принудительно после repaint, после возвращения мидлета из паузы. Примерно так.
Я это и имел ввиду. :-) Я полночи экспериментировал, столько новых мелочей узнал =)

Phantom 14.11.2008 05:50

Ответ: Получение команд в формах
 
Круто. Я просто рад до ж#%ы!!! Всё так легко стало получаться. Ща переделываю предыдущий проект =) Выкинул целую кучу ненужной фигни!!! Вместо условно бесконечного цикла перенёс всё в keyPressed(), теперь перерисовка экрана происходит только при нажатии на кнопку, а не постоянно =))) Мне только и нужно, чтобы экран перерисовывался только при каком-то действии пользователя, там в основном менюшки. Вот только сейчас даже не знаю как лучше сделать иерархию меню. Ну да ладно, что-нибудь придумаю! Всем огромное спасибо!!!

Piligrim 14.11.2008 13:59

Ответ: Получение команд в формах
 
Цитата:

Не, так не подходит. Про это я знал. Ладно, это пофиг, просто никак не могу отбросить мечту делать всё максимум универсальным. =)
а кто мешает основной класс делать во всех программах с именем, например Main? Это конечно не так круто какк coolclass, но зато универсально.
тогда Main.instance.destroyApp() будет работать всегда :)

Phantom 14.11.2008 15:27

Ответ: Получение команд в формах
 
Не, никто не мешает =) Так и делаю. Только у меня главный класс всегда называется a.class, а класс, который наследник канваса (ну или как там оно правильно говорится) - b.class. =)

ViNT 14.11.2008 15:39

Ответ: Получение команд в формах
 
Цитата:

Сообщение от Phantom_wc (Сообщение 90687)
Не, никто не мешает =) Так и делаю. Только у меня главный класс всегда называется a.class, а класс, который наследник канваса (ну или как там оно правильно говорится) - b.class. =)

Зачем такие корявые имена использовать? А если будет десять классов? Пол алфавита перебирать?

Phantom 14.11.2008 15:59

Ответ: Получение команд в формах
 
ViNT, нуу... :@ Фиг его знает... Краткость - сестра таланта. Меня вообще некоторые ходячим обфускатором называют, потому что логику в названиях моих переменных только я вижу :-D Привык всё делать так, уж не знаю почему. :dontknow: Да и тем более я так и не понял, как пользоваться Proguard'ом, уже и Хэлп перелистал и как только не пробовал, всё время пишет, что не может найти Мэйн класс. Так что пусть хотя бы так запутано будет :-D


Часовой пояс GMT +4, время: 14:29.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot