Нужна функция, которая добавляет новую запись в TableItem, используя TableModel в J2ME - PullRequest
2 голосов
/ 11 марта 2011

Как создать динамическую табличную модель в J2ME? как из массивов я использую анализатор kxml для анализа моих данных и отображения этих данных в таблице.

Не могли бы вы дать мне указания? также приветствуется исходный код !!

мой боб выглядит так

public class FIDS {
    private String FNo;
    private String AirCraft;
    private String OnDate;
    private String Gate;
    private String AirCompany;
    private String Remark;
    private String FTime;
    private String BRegTime;
    private String ERegTime;

    public FIDS(){}

    public void SetFN(String fno){this.FNo=fno;}
    public String GetFNo(){return this.FNo;}

    public void SetAirCraft(String acr){this.AirCraft=acr;}
    public String GetAircraft(){return this.AirCraft;}

    public void SetOnDate(String d){this.OnDate=d;}
    public String GetOnDate(){return this.OnDate;}

    public void SetGate(String g){this.Gate=g;}
    public String GetGate(){return this.Gate;}

    public void SetAirCompany(String ac){this.AirCompany=ac;}
    public String GetAirCompany(){return this.AirCompany;}

    public void SetRemark(String rem){this.Remark=rem;}
    public String GetRemark(){return this.Remark;}

    public void SetFTime(String ft){this.FTime=ft;}
    public String GetFTime(){return this.FTime;}

    public void SetBRegTime(String br){this.BRegTime=br;}
    public String GetBRegTime(){return this.BRegTime;}

    public void SetERegTime(String er){this.ERegTime=er;}
    public String GetERegTime(){return this.ERegTime;}
}

и я пытаюсь создать массив объектов моего компонента и заполнить его некоторыми данными, но не могу присвоить этот объект SimpleTableModel, так как его конструктор получает тип String [] [] Я не могу передать arrObj как следующее

FIDS [] fd=new FIDS[5];
for (int i=0;i<5;i++)
{
  fd[i].SetFN("SMR23");
  fd[i].SetAirCraft("B735");
  fd[i].SetAirCompany("Somon Air");
  fd[i].SetFTime("10:00");
  fd[i].SetGate("A");
}

Object[][] arrObj=new Object[fd.length][4];
TableModel model = new SimpleTableModel(arrObj,new String[]{"Column 1", "Column 2", "Column 3"})

 {
         public boolean isCellEditable(int row, int col)
            {
                return false; // return true if editable cell
            }
         };

         for (int index = 0; index < fd.length; index++) {

             // model.setValueAt(index, 0, fd[index].GetFNo().toString());// row , column , value
             // model.setValueAt(index, 1, fd[index].GetAirCompany().toString());
             // model.setValueAt(index, 2, fd[index].GetAirCompany().toString());

         }
TableItem table = new TableItem(getDisplay(), "sdfsdf",model);

, а также метод setValue TableModel отсутствует, так как я использовал SimpleTableModel

Ответы [ 2 ]

3 голосов
/ 15 марта 2011

Где вы инициализированы FIDS?используйте вот так,

   FIDS [] fd=new FIDS[4];
    for (int i=0;i<4;i++)
    {   
        fd[i] = new FIDS();    // initialize here
        fd[i].SetFN("SMR23");
        fd[i].SetAirCraft("B735");
        fd[i].SetAirCompany("Somon Air");
        fd[i].SetFTime("10:00");
        fd[i].SetGate("A");

    }
0 голосов
/ 15 марта 2011

Я добавил LWUIT к своим ресурсам и только что запрограммировал его, и когда я запустил это приложение, на экране ничего не появилось, кроме звукового сигнала, хотя оно хорошо скомпилировалось без ошибок.

import com.sun.lwuit.Display;
import com.sun.lwuit.Form;
import com.sun.lwuit.*;
import com.sun.lwuit.table.*;
import com.sun.lwuit.layouts.*;


public class Main extends javax.microedition.midlet.MIDlet{
    public void startApp() {
        Display.init(this);

         FIDS [] fd=new FIDS[4];
            for (int i=0;i<4;i++)
            {
                fd[i].SetFN("SMR23");
                fd[i].SetAirCraft("B735");
                fd[i].SetAirCompany("Somon Air");
                fd[i].SetFTime("10:00");
                fd[i].SetGate("A");

            }
        Object[][] arrObj=new Object[fd.length][3];
        TableModel model = new DefaultTableModel(new String[]{"Column 1", "Column 2", "Column 3"}, arrObj) {
            public boolean isCellEditable(int row, int col) {
                return false; // return true if editable cell
            }
        };

        for (int index = 0; index < fd.length; index++) {
            model.setValueAt(index, 0, fd[index].GetFNo()); // row , column , value
            model.setValueAt(index, 1, fd[index].GetAircraft());
            model.setValueAt(index, 2, fd[index].GetFTime());
        }

        Form form = new Form();
        form.setTitle("My table");
        form.setLayout(new BorderLayout());

        Table table = new Table(model) {
        protected Component createCell(Object value, final int row, final int column, boolean editable) {
        final Component c = super.createCell(value, row, column, editable);
        c.setFocusable(false);
            return c;
        }
        };
        table.setScrollable(true);


        form.addComponent(BorderLayout.CENTER, table);
        form.show();

    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...