Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2012, 07:52   #1
Nedward
Пользователь
 
Регистрация: 26.06.2011
Сообщений: 85
Злость Hello world на JavaME

Вполне вероятно - вопрос глупый, но поставил в тупик. Пытаюсь написать свой первый мидлет по книге Любавина (кстати, мб кто-нибудь посоветует что-нибудь более подходящее для новичка?). Hello World из книги скомпилировался/запустился нормально. Попытался немного упростить пример, в итоге - 0. В эмуляторе вижу просто белый экран. Подскажите, где ошибка. IDE - NetBeans 7.1.1 (если это важно), исходный код:
Код:
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;

public class Flyer extends MIDlet implements CommandListener
{
    public Flyer()
    {
        super();
    }
    public void startApp()
    {
        Alert a = new Alert("Info");
        a.setTimeout(Alert.FOREVER);
        a.setString("Hello, world!");
        Display.getDisplay(this).setCurrent(a);
    }
    public void pauseApp()
    {
    }
    public void destroyApp(boolean destroy)
    {
        notifyDestroyed(); //закрываем приложение
    }
    public void commandAction (Command c, Displayable d)
    {
    }
}
P.S. поскольку это мой первый опыт общения с Java вообще, то буду благодарен за любую критику.
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (c) Martin Golding
Nedward вне форума Ответить с цитированием
Старый 01.05.2012, 22:27   #2
Nedward
Пользователь
 
Регистрация: 26.06.2011
Сообщений: 85
По умолчанию

А java-программистов тут, похоже, кот наплакал. Сейчас всё свободное время пытался запускать "Hello world" в разных исполнениях, из разных источников. Ещё раз пытался запустить пример из книги (который до этого получалось собирать) - безрезультатно. Толи я где-то допускаю какую-то мелкую ошибку (вроде пропущенной запятой), толи лыжи не едут... На всякий случай выложу тут код из книги, который сейчас мучаю. Возможно, кто-нибудь что-нибудь сможет подсказать. Хотябы в какую сторону копать - в коде ошибка, или в софте что-то не так.
Код:
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;

public class LOMUser extends MIDlet implements CommandListener
{
    private static LOMUser midlet;
    
    public LOMUser()
    {
        super();
    }
    public void destroyApp(boolean bool)
    {
        notifyDestroyed();
    }
    public void pauseApp()
    {
        
    }
    public void startApp()
    {
        Alert alert = new Alert("Info");
        alert.setTimeout(Alert.FOREVER);
        alert.setString("Hello world!");
        Display.getDisplay(this).setCurrent(alert);
    }
    public void commandAction(Command c, Displayable d)
    {
        
    }
    void doQuit()
    {
        destroyApp(true);
    }
}
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (c) Martin Golding
Nedward вне форума Ответить с цитированием
Старый 03.05.2012, 23:47   #3
Kvest
 
Регистрация: 28.01.2008
Сообщений: 3
По умолчанию

Если бы не хватало запятой - не скомпилировалось бы вообще.
Почему код не работает не совсем понятно - вроде все логично и верно, а проверять нет времени.
Попробуй вместо Alert использовать Form:
Form form = new Form("test");
form.append("Hello world!");
Display.getDisplay(this).setCurrent (form);
Kvest вне форума Ответить с цитированием
Старый 13.05.2012, 22:47   #4
Nedward
Пользователь
 
Регистрация: 26.06.2011
Сообщений: 85
По умолчанию

Проблема решилась, и была она (как и ожидалось) глупой до безобразия. В мой мозг, развращённый C++ и "void main()", не сразу прокралась мысль, что при компиляции в Java (по крайней мере - в Java ME точно, про полноценную версию не в курсе) нужно указывать, какой именно класс является "главным", и с чего вообще начинать программу. Однако компилятор не считал это ошибкой и спокойно себе собирал синтаксически верную программу, которая никогда и ничего делать не будет т. к. точка входа не указана. Проблема усугублялась тем, что NetBeans в некоторых случаях облегчает программисту работу и сразу прописывает "начальный" класс, что создало некоторую путаницу.
Но, спасибо за ответ!
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (c) Martin Golding
Nedward вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
djvu -> jar(JavaME) Пепел Феникса Свободное общение 6 14.08.2011 16:57
Декомпилятор JavaME. Пепел Феникса Свободное общение 4 04.02.2011 03:31
Mobile Interpreters/Compilers(JavaME) Пепел Феникса Общие вопросы по программированию, компьютерный форум 0 22.09.2010 00:57
Hello World Syltan Общие вопросы по Java, Java SE, Kotlin 17 14.05.2010 11:21