Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Реализация Wizard, Как лучше? 
:(
    Опции темы
DemoCode
Дата 17.1.2006, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: нет
Всего: 41



Вот впервые столкнулся с программированием на Java, т.к. я работаю Delphi программером, и вдруг необходимо сделать приложение для мобильного телефона. Пробовал MIDlet Pasacl, но очень он ограничен (там даже нет динамических массивов), вот решил заняться Java.

Передо мной стоит задача написать "мастера", т.е. выводить формы с вопросами и дать пользователю возможность отвечать на них. Вопросы разбиты на группы и выводить надо группу целиком, а затем после ответа переходить к следующей группе. Возник вопрос, как удобнее это реализовать?
1) Создавать на каждую группу вопросов новую форму и по нажатии далее устанавливать другую форму; или
2) На одной форме выводить группы вопросов с полями для ответа, при нажатии далее скрывать их (как? можно ли в J2ME скрывать контролы формы, не разрушая их? Иначе значения ответов надо хранить в переменных).

Второе, вопрос состоит из названия группы и собственно массива строк - текстов вопросов. Можно ли в Java создавать записи (как в Delphi) или структуры (как в Си)? Или надо создавать отдельный класс? Если да, то как надо инициализировать массив экземпляров этого класса, учитывая, что от содержит массив строк, количество элементов в котором будет отличаться в каждом экземпляре класса?

Спасибо.


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
batigoal
Дата 17.1.2006, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Цитата(DemoCode @ 17.1.2006, 16:35 Найти цитируемый пост)

Или надо создавать отдельный класс? Если да, то как надо инициализировать массив экземпляров этого класса, учитывая, что от содержит массив строк, количество элементов в котором будет отличаться в каждом экземпляре класса?

Да, нужно создать класс. Теоретически - можно вообще не добавлять в него методы, оставить только поля, это и будет структурой (записью). Но на практике обычно делаются как минимум private-поля и методы get/set для них.

Массивы в Java, конечно, есть, однако гораздо чаще используется одна из стандартных коллекций.
Код

class Element
{
  private int field1;
  private String field2;
  
  Element(int field1, String field2)
  {
    this.field1 = field1;
    this.field2 = field2;
  }
}

class Test
{
  public testMethod()
  {
     ArrayList list = new ArrayList();
     Element element = new (1,"first");
     list.add(element);
  }
}


Правда, я не знаю, какие из Java-коллекций поддерживаются в J2ME.

Насчет инициализации - по умолчанию все ссылки инициализируются null-значениями, простые типы нулями, пустой строкой и т.п. То при такой записи:
Код

Element element;

element получит значение null, а вот при таком, например:
Код

Element element1 = new Element (1, "first");
Element element2 = element1;

element1 и element2 будут указывать на один и тот же реальный объект.
Добавлено @ 15:58
Цитата(DemoCode @ 17.1.2006, 16:35 Найти цитируемый пост)

Иначе значения ответов надо хранить в переменных

Я бы, например, так и так хранил бы их в переменных. Имхо, интерфейс должен быть отдельно, логика - отдельно.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
DemoCode
Дата 17.1.2006, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: нет
Всего: 41



Lamer George, большое спасибо.
А как быть с формами? 1 или 2? Или по-другому лучше?


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
javastic
Дата 17.1.2006, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



Я бы сделал отдельно на каждый шаг свою форму, особенно если в каждой из форм есть какие-то свои проверки введённых данных. На мой взгляд проще управлять формами, чем потом манипулировать отображением и скрытием контролов (при определённых событиях) на форме.

Это сообщение отредактировал(а) javastic - 17.1.2006, 16:09


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
DemoCode
Дата 17.1.2006, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: нет
Всего: 41



Цитата(javastic @ 17.1.2006, 17:08 Найти цитируемый пост)

Я бы сделал отдельно на каждый шаг свою форму, особенно если в каждой из форм есть какие-то свои проверки введённых данных. На мой взгляд проще управлять формами, чем потом манипулировать отображением и скрытием контролов (при определённых событиях) на форме.

Спасибо.


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0445 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.