在表的一列中添加按钮

时间:2013-10-28 10:11:53

标签: java

我正在使用lwuit创建一个包含一些值和一个行侦听器的表。在j2me。 我试图添加一个按钮和一个监听器,以便我在表中有一个值,我可以通过它来实现行侦听器。我使用了以下链接:http://lwuit.blogspot.in/2010/06/headon-that-table.html。但是当我向表中添加按钮时,它会到达表的末尾,因为表模型只接受该对象作为其添加到表中的输入。

通过使用此链接,我通过以下命令在按钮处添加了按钮:

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

此外,我尝试创建网格布局或表格布局,并添加了数字行*列的按钮,但仍然是最后一个按钮的监听器,而不是其余按钮。关于如何实现这种逻辑的任何想法。我的实际任务是向表中添加行单击侦听器。任何概念或编码帮助都表示赞赏。

1 个答案:

答案 0 :(得分:0)

虽然我得到了一个朋友的答案,我正在和你分享。他说我要在网格或表格布局中添加按钮,按钮应该像二维数组一样添加,以便正确管理他们的听众。

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;");
            }
        }
    }

}

}