Веб программирование

Дополнительные объекты J2ME

 
 

В j2me тоже есть объекты с именами Form, List, TextBox, они немного отличаются, но принцип тот же.

Сейчас я покажу как работать с такими объектами, как List, Alert, TextBox, TextField,ChoiceGroup.

Как обычно открываем файл Main.java в папке проекта, и пишем код:

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class Main extends MIDlet implements CommandListener{
public Canv ca;
public Display d;
public Form f;
public static Main midlet;
public Command FormCmd;
public Command ExitCmd;
public Command CanvCmd;

public Command AlertCmd;
/*Команда, которая будет вызывать Alert*/

public Command TextCmd;
/*Команда, которая будет показывать TextBox*/

public Command ListCmd;
/*Команда, которая будет показывать List*/

public String str[] = {"1", "2", "3", "4", "5"};
/*Создаём массив строк, я ещё не сказал, что обхекты не обязательно инициализировать
в самом коде, можно это делать при их обхявлении*/

public ChoiceGroup CG;
/*Типо ComboBox в vb6*/

public Alert MyMsg;
/*Аналог MsgBox в vb6*/

public TextBox TB;
/*Это текстовое поле, но оно на весь экран и его нельзя прикрепить к форме, это
как отдельная форма, ему мы и будем давать экран при команде TextCmd*/

public TextField TF;
/*Это текстовое поле можно вставлять в форму*/

public List MyList;
/*List в vb6*/

public Main(){
midlet=this;
}

public void startApp() {
if(d == null){
CG = new ChoiceGroup("Выберите сложность:",Choice.POPUP,str,null);
/*Инициализация ChoiceGroup, в конструктор этого класса можно вместо null передать
массив картинок, и тогда в пунктах будут картинки
конструктор - (Заголовок, тип (EXCLUSIVE, MULTIPLE, POPUP), массив строк, массив картинок)*/

MyList = new List("MyList",Choice.IMPLICIT,str,null);
/*Опять же вместо null можно написать массив картинок.
конструктор - (Название, тип(EXCLUSIVE, MULTIPLE, IMPLICIT), массив строк, массив картинок)
потом можно получить элемент который выбрал пользователь с помощью метода getSelectedIndex()
например int MyIndex = MyList.getSelectedIndex();*/

TF = new TextField("Заголовок.", "", 20,TextField.ANY);
/*Конструктор такой - (Заголовок, начальный текст, максимальная дляна текста, символы которые можно вводить
(например ANY - всё, NUMERIC - числа, PASSWORD - пароль, EMAILADDR - e-mail, URL - ввод url,
PHONENUMBER - телефон))*/

TB = new TextBox("TextBox", "", 255,TextField.ANY);
/*Конструктор такой же как и у TextField*/

/*Если пользователь что - нибудь напишет, то текст можно извлечь методом
getString() например String MyStr = TB.getString();*/

FormCmd = new Command("На форму!", Command.ITEM, 1);
CanvCmd = new Command("В игру!", Command.ITEM, 1);
ExitCmd = new Command("Выход", Command.EXIT, 2);
AlertCmd = new Command("Alert", Command.ITEM, 1);
TextCmd = new Command("В TextBox", Command.ITEM, 1);
ListCmd = new Command("В List", Command.ITEM, 1);
f = new Form("Hello!");
f.append(CG);
f.append(TF);

TB.addCommand(FormCmd);
TB.setCommandListener(this);
/*Сразу добавляем команды в текстовое поле*/

MyList.addCommand(FormCmd);
MyList.setCommandListener(this);
/*Сразу добавляем команды в List*/

f.addCommand(CanvCmd);
f.addCommand(TextCmd);
f.addCommand(ListCmd);
f.addCommand(AlertCmd);
f.addCommand(ExitCmd);
f.setCommandListener(this);
d = Display.getDisplay(this);
d.setCurrent(f);
}
}

public void commandAction(Command c,Displayable d2){
if(c==CanvCmd){
if(ca==null){
ca = new Canv();
ca.addCommand(FormCmd);
ca.addCommand(ExitCmd);
ca.setCommandListener(this);
}
d.setCurrent(ca);
}
if(c==FormCmd){
d.setCurrent(f);
}

if(c==TextCmd){
d.setCurrent(TB);
}

if(c==AlertCmd){
try{
Image MyImg = Image.createImage("/Player.png");
MyMsg = new Alert("Заголовок","Текст",MyImg,AlertType.ALARM);
/*Инициализируем сообщение, конструктор - (Заголовок, Текст, Картинка (мы её выше создали), тип
(типы - ALARM, CONFIRMANTION, ERROR, INFO, WARNING))*/

MyMsg.setTimeout(1000);
/*Пауза перед автозакрытием сообщения (1000 = 1c)*/

d.setCurrent(MyMsg);
} catch (Exception e) {}
}
if(c==ListCmd){
d.setCurrent(MyList);
/*Показываем List*/
}

if(c==ExitCmd){
destroyApp(true);
}
}

public void pauseApp() {}

public void destroyApp(boolean u) {
notifyDestroyed();
}
}

Файл Canv.java мы сегодня не будем трогать, открываем WTK, и компилируем ("Build")

if Есть_Ошибки = true then

Скачать файл [13426 кб]

else
Продолжаем, создаём jar и jad, жмём Run, и любуемся результатом, вот скриншоты:


Есть вопросы? Спроси на нашем форуме!!
Нет комментариев

Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.