Переключение холста в J2ME - PullRequest
1 голос
/ 03 марта 2012

У меня есть класс, который расширяет canvas. Я создал еще один класс canvas. Но я не мог переключаться между ними.

Возможно ли переключение между холстами в J2ME?

1 Ответ

2 голосов
/ 03 марта 2012
import ...
public class MyMIDlet extends MIDlet{
    ...
    final Canvas1 c1;
    final Canvas2 c2;
    ...
    public MyMIDlet(){
        c1 = new Canvas1(this);
        c2 = new Canvas2(this);
    }
    ...
}

import ...
public class Canvas1 extends Canvas implements CommandListener{
    MyMIDlet myMidlet;
    Display disp;
    Command switchDisp;
    ...
    /**
    *constructor
    */
    public Canvas1(MyMIDlet myMidlet){
        this.MyMIDlet = myMidlet;
        disp = myMidlet.getDisplay();
        switchDisp = new Command("switch", Command.SCREEN, 0);
        this.addCommand(switchDisp);
        this.setCommandListener(this);
    }
    ...
    public void paint(Graphics g){
        g.setColor(255,255,255);
        g.drawString("canvas1", 0, 0, 0);
    }
    ...
    public void commandAction(Command cmd, Displayable displayable){
        disp.setCurrent(myMidlet.c2);
    }
}

import ...
public class Canvas2 extends Canvas implements CommandListener{
    MyMIDlet myMidlet;
    Display disp;
    Command switchDisp;
    ...
    /**
    *constructor
    */
    public Canvas1(MyMIDlet myMidlet){
        this.MyMIDlet = myMidlet;
        disp = myMidlet.getDisplay();
        switchDisp = new Command("switch", Command.SCREEN, 0);
        this.addCommand(switchDisp);
        this.setCommandListener(this);
    }
    ...
    public void paint(Graphics g){
        g.setColor(255,255,255);
        g.drawString("canvas2", 0, 0, 0);
    }
    ...
    public void commandAction(Command cmd, Displayable displayable){
        disp.setCurrent(myMidlet.c1);
    }
}   

Отображаемый объект - это объект, который может быть размещен на дисплее. Класс Displayable реализует интерфейс Displayable.
Класс Display - это менеджер отображения, который создается для каждого активного мидлета и предоставляет методы для получения информации о возможностях отображения устройства. Холст становится видимым, вызывая метод Display.setCurrent ().
Холст реализует интерфейс Displayable.
Класс Displayable - это элемент пользовательского интерфейса, который может отображаться на экране устройства, в то время как класс Display абстрагирует функции отображения экрана реального устройства и делает их доступными для вас. Он предоставляет методы для отображения или изменения текущего элемента пользовательского интерфейса, который вы хотите отобразить. Таким образом, мидлет показывает элемент Displayable UI на Display с использованием метода setCurrent (Displayable element) класса Display.

...