2013-10-28 45 views
-1

我正在使用lwuit創建一個包含一些值和行監聽器的表。在j2me。 我想添加一個按鈕和一個監聽器,以便我有一個表中的值,我可以實現一個行監聽器。我使用了以下鏈接:http://lwuit.blogspot.in/2010/06/headon-that-table.html。但是,當我將按鈕添加到表時,它會到達表的末尾,因爲表模型只接受作爲其輸入添加到表中的對象。在表格的一列中添加按鈕

通過使用該鏈路I由按鈕添加的按鈕通過以下命令:

container.addComponent(new Button("Details")); 

此外,我試圖建立一個網格佈局或表的佈局和與行數*列,但仍增加按鈕最後一個按鈕的監聽者工作,而不是休息。關於如何實現這個邏輯的任何想法。我的實際任務是向表中添加一個行單擊偵聽器。任何概念或編碼幫助表示讚賞。

+0

請提供代碼。 –

+0

哪個部分? –

+0

對於任何事情。最好的辦法是提供所有相關的代碼。但你沒有提供任何。 –

回答

0

意思是,雖然我得到了一個朋友的答案,我與你分享。他說我要在網格或表格佈局中添加按鈕,並且按鈕應該像2d數組一樣添加,以便他們的監聽器得到正確的管理。

public class Midlet extends MIDlet implements ActionListener{ 

Form f; 
Container c; 
private int ROWS=100; 
Button b[][]; 
private int COLUMNS=3; 
public void startApp() { 
    Display.init(this); 

    f=new Form("grid with buttons"); 
    c=new Container(new TableLayout(ROWS, COLUMNS)); 
    b=new Button[ROWS][COLUMNS]; 
    c.setScrollableX(true); 
    c.setScrollableY(true); 
    //c.setDraggable(true); 
    addElements(); 


    //f.setScrollable(false); 
    f.setScrollVisible(true); 
    f.addComponent(c); 
    f.show(); 

} 

public void pauseApp() { 
} 

public void destroyApp(boolean unconditional) { 
} 

public void addElements() 
{ 
    for(int i=0;i<ROWS;i++) 
    { 
     for(int j=0;j<COLUMNS;j++) 
     { 
      b[i][j]=new Button(i+" sdkljf "+j); 
      c.addComponent(b[i][j]); 
      b[i][j].addActionListener(this); 
     } 
    } 

} 


/** 
* 
* @param message message to be displayed 
* @param title title of the alert 
*/ 
public void showMsg(String message, String title) 
{ 
    final Dialog d=new Dialog(title); 
    d.setLayout(new GridLayout(1, 1)); 
    Button b=new Button("Ok"); 
    TextArea msg=new TextArea(message); 
    msg.setUIID(message); 
    msg.setEditable(false); 

    //dialogContainer.addComponent(msg); 
    //dialogContainer.addComponent(b); 

    d.addComponent(msg); 
    d.addComponent(b); 

    b.addActionListener(new ActionListener() { 

     public void actionPerformed(ActionEvent evt) { 
      d.dispose(); 
     } 
    }); 

    d.show(); 
} 

public void actionPerformed(ActionEvent evt) { 

    for(int i=0;i<ROWS;i++) 
    { 
     for(int j=0;j<COLUMNS;j++) 
     { 
      if(b[i][j]==evt.getComponent()) 
      { 
       showMsg(i+","+j, "sl;dkf;"); 
      } 
     } 
    } 

} 

}