[JavaME] Formatki i lista - jak obsługiwać/tworzyć

0

Witam,

Zaczynam przygodę z Javą ME.
Projekt tworze w konfiguracji CLDC-1.0 i MIDP-2.0.
Potrzebuję utworzyć liste graczy, których imiona będą wpisywane w formularzu:

public class Form1 extends Form
        implements CommandListener, ItemStateListener{
    TextField txtName;
    StringItem txtNum;
    public Form1() {
        super("Dodaj zawodnika");
        addCommand(new Command("Koniec", Command.EXIT, 1));
        addCommand(new Command("Dalej", Command.OK, 2));

        setCommandListener(this);
        setItemStateListener(this);
        append(txtNum = new StringItem("Numer zawodnika: ","1"));
        append(txtName = new TextField("Imie: ","", 15, TextField.ANY));
        Display.getDisplay(Midlet.getMidlet()).setCurrent(this);

        
    }
    public void commandAction(Command c, Displayable d){
        switch(c.getCommandType()){
            case Command.EXIT:
                Midlet.getMidlet().Exit(); // zamyka się cały program - a taki eksperyment
                break;
            case Command.OK:
                //txtName.getString();
                txtName.setString("");
                //txtNum.setText("2"); TEST
                /** Dodanie nowego elementu do listy */
                break;
        }
    }

    public void itemStateChanged(Item item){

        
    }
}

Formatka wyświetlana jest w ten sposób:

public class Midlet extends MIDlet {
    private static Midlet midletInstance;    
    public Midlet(){
        midletInstance = this;
        new Form1();
    }
    public static Midlet getMidlet(){
        return midletInstance;
    }
    public void Exit(){
        destroyApp(false);
        notifyDestroyed();
    }
    public void startApp() {
    }
    public void pauseApp() {
    }
    public void destroyApp(boolean unconditional) {
    }
}

Tak wygląda klasa zawodnika:

public class Player {
    private String name;
    private Integer position;
    public Player(){
        
    }
    /* ... tutaj jeszcze będzie kod ;] */
}

Wcześniej programowałem w czystym C i ciężko mi się tutaj połapać. Potrzebuję w głównym midlecie zrobić listę zawodników(chyba będzie najlepiej - formatka będzie wywoływać funkcję w głównym midlecie który będzie zarządzać listą[dodatać/odczytywać parametry zawodnika]). Każdy element ma być dodawany po wpisaniu imienia zawodnika. Po kliknięciu "Zamknij" formatka ma zostać zniszczona i wyświetlona inna.
Moje pytania są następujące:

  1. Jak zrobić listę obiektu Player, aby dynamicznie dodawać elementy? Czytałem o ArrayList, ale to nie działa mi na ME.
  2. Nie wiem jak połączyć formatkę z głównym programem, pasowałoby mi coś takiego(jeśli jest lepszy sposób w Javie to proszę mnie poprawić)
    public Midlet(){
        midletInstance = this;
        new Form1();
        /* dalszy kod który wykona się po zamknięciu formatki - w delphi było coś takiego jak ShowModal - forma działa jak okienko do wpisywania danych*/
    }

Piszę program w NetBeans 6.8.
Proszę o pomoc.

0

Z listą sobie chyba poradziłem za pomocą "Vector".
Został problem jak dla mnie nie do rozpracowania.
Chcę zrobić tak:

Start programu
wyświetlenie formatki nr 1 // new Form1();
wpisywanie danych // działa(uzupełniane jest "Vector player = new Vector();" elementami
zamkniecie formatki nr 1 // gdzie/jak to zrobić?
wyświetlenie formatki nr 2 // gdzie to zrobić?
....

Przydałaby się funkcja w głównym midlecie która zamknie formatke 1 i uruchomi formatke 2 po wciśnięciu klawisza "zamknij":

    public void commandAction(Command c, Displayable d){
        switch(c.getCommandType()){
            case Command.EXIT:
                // ??????????????????
                break;
            case Command.OK: // dodanie elementu
                Midlet.getMidlet().addPlayer(txtName.getString());
                txtName.setString("");
                txtNum.setText(Integer.toString(Midlet.getMidlet().countPlayer()+1));
                break;
        }
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1