2013-04-28 40 views
0

我有一個LWUIT應用程序 包含的RecordStore和recordStore2 RecordStores getRecordData(方法檢索所有的RecordStore元素 getRecordData2()方法檢索所有recordStore2元素顯示RecordStore的記錄

三種形式爲應用程序屏幕(f,g和ff)。
g表單包含以下小部件 一個稱爲tf的TextField,它使最終用戶能夠爲recordStore或recordStore2 RecordStores寫入記錄。

兩個單選按鈕RB和RB2 稱爲除了用於選擇RB2單選按鈕時添加一個記錄(即寫在TF的TextField)到的RecordStore RecordStore中選擇RB的單選按鈕時,或添加記錄到recordStore2 RecordStore的A按鈕。 兩個列表稱爲MYLIST和mylist2 稱爲A鈕 當按鈕全部按下FF形式顯示,並且顯示的RecordStore和recordstore2 RecordStores的所有記錄

面對我的問題是有記錄乘法時MYLIST或mylist2顯示

這個班裏

import java.util.*; 
    import com.sun.lwuit.table.*; 
    import com.sun.lwuit.table.DefaultTableModel; 
    import javax.microedition.lcdui.*; 
    import javax.microedition.midlet.*; 
    import javax.microedition.rms.RecordStore; 

    import javax.microedition.rms.RecordStoreNotOpenException; 
    import javax.microedition.rms .*; 
    import com.sun.lwuit.layouts.*; 
    import com.sun.lwuit.*; 
    import javax.microedition.lcdui.Canvas; 

    import com.sun.lwuit.events.*; 
    import com.sun.lwuit.plaf.*; 
    import javax.microedition.midlet.*; 
    import com.sun.lwuit.geom.*; 
    import com.sun.lwuit.*; 
    import com.sun.lwuit.events.*; 

    public class HelloLWUITMidlet3 extends MIDlet implements Runnable, ActionListener { 
     private RecordStore recordStore,recordStore2; 


      String team,team2; 

    public String [] getRecordData() 
    { 
     String[] str = null; 
     int counter = 0; 
     try 
     { 
      RecordEnumeration enumeration = recordStore.enumerateRecords(null, null, false); 
      str = new String[recordStore.getNumRecords()]; 

      while(enumeration.hasNextElement()) 
      { 
       try 
       { 
        str[counter] = (new String(enumeration.nextRecord())); 
        counter ++; 
       } 
       catch (Exception e) 
       { 
        e.printStackTrace(); 
       } 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return str; 
    } 
    public String [] getRecordData2() 
    { 
     String[] str = null; 
     int counter = 0; 
     try 
     { 
      RecordEnumeration enumeration = recordStore2.enumerateRecords(null, null, false); 
      str = new String[recordStore2.getNumRecords()]; 

      while(enumeration.hasNextElement()) 
      { 
       try 
       { 
        str[counter] = (new String(enumeration.nextRecord())); 
        counter ++; 
       } 
       catch (Exception e) 
       { 
        e.printStackTrace(); 
       } 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return str; 
    } 
     public void startApp() 

     { 

      com.sun.lwuit.Display.init(this); 


    int bgColor =0x0066CC; 

    final ButtonGroup group = new ButtonGroup(); 
    final RadioButton rb = new RadioButton("First Team"); 
    final RadioButton rb2 = new RadioButton("Second Team"); 
    group.add(rb); 
    group.add(rb2); 
    //TableModel model = new DefaultTableModel(new String[]{"Column 1", "Column 2"}); 

    final f1 g = new f1(); 

    final com.sun.lwuit.List mylist = new com.sun.lwuit.List(); 
    final com.sun.lwuit.List mylist2 = new com.sun.lwuit.List(); 
    final form6 my = new form6(); 
    final com.sun.lwuit.Form f = new com.sun.lwuit.Form("Football"); 
     f.getStyle().setBgColor(0X99CCFF); 

     BoxLayout boxlayout =new BoxLayout(BoxLayout.X_AXIS); 

     // com.sun.lwuit.Command exitCommand = new com.sun.lwuit.Command("????"); 
     final Button goals = new Button("See goals"); 
     final Button button = new Button("Goals Record"); 

     final com.sun.lwuit.TextField tf =new com.sun.lwuit.TextField(); 



     final com.sun.lwuit.TextField txtfield5 =new com.sun.lwuit.TextField(); 

     final com.sun.lwuit.TextField txtfield6 =new com.sun.lwuit.TextField(); 



    final Button addition = new Button("Add Goals"); 

    final Button All = new Button("All Goals"); 

    addition.getStyle().setBgColor(0X0066CC); 

     com.sun.lwuit.Command back = new com.sun.lwuit.Command("Main_Screen"); 

    final form6 ff = new form6(); 

     button.getStyle().setBgColor(0X0066CC); 

    goals.getStyle().setBgColor(0X0066CC); 

     All.getStyle().setBgColor(0X0066CC); 
    Style g_style5 = g.getSelectedStyle() ; 

    f.addComponent(button); 

    ff.addCommand(back); 

    //g.addComponent(main_screen); 
    g.addComponent(tf); 
    g.addComponent(addition); 
    g.addComponent(rb); 
    g.addComponent(rb2); 


    g.addComponent(All); 

    g.getStyle().setBgColor(0X99CCFF); 

    g.addCommand(back); 

    g.addCommandListener(new ActionListener() 

    { 


     public void actionPerformed(ActionEvent ae) { 



    f.show(); 
     } 



    } 
      ); 


     ff.addCommandListener(new ActionListener() 

    { 


     public void actionPerformed(ActionEvent ae) { 



    f.show(); 
     } 



    } 
      ); 

    ff.getStyle().setBgColor(0X99CCFF); 





    try{ 
      recordStore2 = RecordStore.openRecordStore("My Record Store2", true); 
      } 
     catch(Exception ex) 
     { } 
    try{ 
      recordStore = RecordStore.openRecordStore("My Record Store", true); 
      } 
     catch(Exception ex) 
     { } 

      All.addActionListener(new ActionListener() { 

     public void actionPerformed(ActionEvent ae) { 

    try 
    { 
     com.sun.lwuit.Label l = new com.sun.lwuit.Label("First Team Goals") ; 
     ff.addComponent(l); 
     String [] record= getRecordData(); 
    int j1; 
    String valueToBeInserted2=""; 

    for(j1=0;j1< getRecordData().length;j1++) 
     { 

    valueToBeInserted2=valueToBeInserted2 + " " + record[j1]; 

    mylist.addItem(record[j1]); 


    } 


    ff.addComponent(mylist); 

    com.sun.lwuit.Label ll = new com.sun.lwuit.Label("Second Team Goals") ; 
     ff.addComponent(ll); 

     String [] record2= getRecordData2(); 
    int j2; 
    String valueToBeInserted=""; 

    for(j2=0;j2< getRecordData2().length;j2++) 
     { 

    valueToBeInserted=valueToBeInserted + " " + record2[j2]; 

    mylist2.addItem(record2[j2]); 


    } 


    ff.addComponent(mylist2); 
      } 
    catch(java.lang.IllegalArgumentException e){} 
    finally { 
    ff.show(); 
      } 
      } 



     } 
    ); 

    button.addActionListener(new ActionListener() { 

     public void actionPerformed(ActionEvent ae) { 


    g.show(); 
     } 

     } 
    ); 
    goals.addActionListener(new ActionListener() { 

     public void actionPerformed(ActionEvent ae) { 



     } 

     } 
    ); 





    final Thread th = new Thread(this); 







    addition.addActionListener(new ActionListener() 
    { 

     public void actionPerformed(ActionEvent ae) { 

    String s =tf.getText(); 
    if(rb.isSelected()) 
    { 



    if(s!=null && s.length() > 0) 

    { 

    try{ 

      String kk =tf.getText(); 
      mylist.addItem(kk); 


       byte bytestream[] = kk.getBytes() ; 

       int i = recordStore.addRecord(bytestream, 0, bytestream.length); 

     } 

    catch(Exception ex) { } 


    Dialog validDialog = new Dialog(" "); 
    Style Dialogstyle = validDialog.getSelectedStyle() ; 

      validDialog.setScrollable(false); 
    validDialog.getDialogStyle().setBgColor(0x0066CC); 
      validDialog.setTimeout(1000); // set timeout milliseconds 
      TextArea textArea = new TextArea("...."); //pass the alert text here 
      textArea.setFocusable(false); 

      textArea.setText("A new goal has been added"+""); 
      validDialog.addComponent(textArea); 

      validDialog.show(0, 10, 10, 10, true); 




    } 

      } 


    else if (rb2.isSelected()) 
    { 


    if(s!=null && s.length() > 0) 

    { 

    try{ 

      String kk =tf.getText(); 


      mylist2.addItem(kk); 
      byte bytestream[] = kk.getBytes() ; 

      int i = recordStore2.addRecord(bytestream, 0, bytestream.length); 

     } 

    catch(Exception ex) { } 


    Dialog validDialog = new Dialog(" "); 
    Style Dialogstyle = validDialog.getSelectedStyle() ; 

      validDialog.setScrollable(false); 
    validDialog.getDialogStyle().setBgColor(0x0066CC); 
      validDialog.setTimeout(1000); // set timeout milliseconds 
      TextArea textArea = new TextArea("...."); //pass the al newert text here 
      textArea.setFocusable(false); 

      textArea.setText("A new Goal has been added"+""); 
      validDialog.addComponent(textArea); 

      validDialog.show(0, 10, 10, 10, true); 



    } 

      } 

    else if((rb.isSelected()==false&&rb.isSelected()==false)||(s==null && s.length()<= 0)) 

    { 

     Dialog validDialo = new Dialog(" "); 
      validDialo.setScrollable(false); 
    validDialo.getDialogStyle().setBgColor(0x0066CC); 
      validDialo.setTimeout(5000); // set timeout milliseconds 
      TextArea textArea = new TextArea("...."); //pass the alert text here 

      textArea.setFocusable(false); 
      textArea.setText("please enter scorer name and choose his team"); 
      validDialo.addComponent(textArea); 
    //validDialo.getStyle().set3DText(true, true); 

      validDialo.show(50, 50, 50, 50, true); 
      txtfield6.clear(); 
    } 



     } 

    } 
    ); 





      f.show(); 



     } 
    public void run() 
     { 
     while(true) 
     { 

      String get[] = getRecordData(); 
      Dialog validDialog = new Dialog(" "); 
      Style Dialogstyle = validDialog.getSelectedStyle() ; 
      validDialog.setTimeout(5000); 
      validDialog.setScrollable(true); 
      validDialog.setLayout(null); 
      validDialog.setTimeout(5000); 
      TextArea textArea = new TextArea(); 
    for(int ii=0;ii<getRecordData().length;ii++) 

    { 


      textArea.setColumns(getRecordData().length); 


      validDialog.addComponent(textArea); 



      validDialog.show(10, 10, 10, 10, true); 


    System.out.println(get[ii]+"\n"); 
    System.out.println(textArea.getColumns()+"\n"); 
    } 

      } 

     } 
     public void pauseApp() {} 

     public void destroyApp(boolean unconditional) {} 

     public void actionPerformed(ActionEvent ae) { 
      notifyDestroyed(); 
     } 

     public class f1 extends com.sun.lwuit.Form 


     { 

    com.sun.lwuit.TextField tf; 
     public f1() 

       { 

     com.sun.lwuit.Form f1 = new com.sun.lwuit.Form("Goals Records"); 

     tf =new com.sun.lwuit.TextField(); 

       } 






     } 



    public class form6 extends com.sun.lwuit.Form 


     { 
    com.sun.lwuit.TextField txtfield3; 
    com.sun.lwuit.TextField tf3; 


     public form6() 

       { 

     com.sun.lwuit.Form mylist = new com.sun.lwuit.Form("Goals List"); 


       } 




    } 

} 

回答

1

當你打電話給getRecordData/getRecordData2功能你會失敗。

在這個函數中調用到的數據條記錄,並返回字符串array.But注意,你可以調用這個函數每一個的actionPerformed函數調用時(當ActionListener的是響應)。

這是你在你的list.You乘法記錄得到的文本字段中曾經調用同一個陣列,並附加了新的結果的原因。

提示解決方案: 您可以將您的長度記錄數據保存在RMS中,並且每次您調用actionPerformed時,都可以從櫃檯複製到新的Record Store lentgh。