如何使用LWUIT-J2ME在表单元格中添加组合框?

| 我想在表格单元格中添加一个组合框以提供拖放选项LWUIT。 我已经使用了这个选项..
    private String strCmbBox[] = { \"1\", \"2\", \"3\", \"4\" };

    ComboBox comboRdoBox = new ComboBox(strCmbBox);
    comboRdoBox.setListCellRenderer(new comboBoxRenderer());

    TableModel model = new DefaultTableModel(new String[] { \"Col 1\",
            \"Col 2\", \"Col 3\" }, new Object[][] {
            {\"Row 1\",new DefaultTableModel(new String[] { \"1\" },
            new Object[][] { { comboRdoBox }, { \"lbl\" } }),
            \"Row X\" }, { \"Row 2\", \"Row B\", \"Row Y\" },
            { \"Row 3\", \"Row C\", \"Row Z\" }, 
            { \"Row 4\", \"Row D\", \"Row K\" }, });

    Table table = new Table(model);

    table.initComponent();
    f.addComponent(table);

    f.show();
但是它返回单元格中所有属性值的地址;而不是显示组合框 在牢房... 答: com.sun.lwuit.table.DefaultTableModel@f828ed68 谁能帮我解决这个问题?     
已邀请:
我经过一番谷歌搜索..:D
package examples;

import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

import com.sun.lwuit.ComboBox;
import com.sun.lwuit.Component;
import com.sun.lwuit.Display;
import com.sun.lwuit.Form;

import com.sun.lwuit.List;
import com.sun.lwuit.RadioButton;

import com.sun.lwuit.list.ListCellRenderer;
import com.sun.lwuit.table.DefaultTableModel;
import com.sun.lwuit.table.Table;
import com.sun.lwuit.table.TableModel;

class CustomTable extends Table {

    static ComboBox comboRdoBox[];

    public CustomTable(TableModel model) {
        super(model);
        comboRdoBox = new ComboBox[this.getModel().getRowCount()];
    }

    protected Component createCell(Object value, int row, int column,
            boolean editable) {
        System.out.print(\"row : \" + row);
        System.out.println(\" column : \" + column);

        // if (row == 2) {
        switch (column) {
        case 1:
            if (comboRdoBox[column] == null) {
                comboRdoBox[column] = new ComboBox(DemoTable2.strCmbBox);
                comboRdoBox[column].setListCellRenderer(new rdioBoxRenderer());
            }

            return comboRdoBox[column];
        }

        // }

        return super.createCell(value, row, column, editable);
    }
}

class rdioBoxRenderer extends RadioButton implements ListCellRenderer {

    public rdioBoxRenderer() {
        super(\"In super\");
    }

    public Component getListCellRendererComponent(List arg0, Object value,
            int index, boolean isSelected) {
        // TODO Auto-generated method stub
        setText(\" value :\" + value + \" index: \" + (index + 1));
        if (isSelected) {
            setFocus(true);
            setSelected(true);
        } else {
            setFocus(false);
            setSelected(false);
        }
        return this;
    }

    public Component getListFocusComponent(List arg0) {
        setText(\"\");
        setFocus(true);
        setSelected(true);
        return this;
    }

}

public class demoTable extends MIDlet {

    public demoTable() {
        // TODO Auto-generated constructor stub
    }

    protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
        // TODO Auto-generated method stub

    }

    protected void pauseApp() {
        // TODO Auto-generated method stub

    }

    protected void startApp() throws MIDletStateChangeException {
        Display.init(this);
        Form form = new Form(\"Hello Form\");
        // form.setLayout(new BorderLayout());

        TableModel model = new DefaultTableModel(new String[] { \"Col 1\",
                \"Col 2\", \"Col 3\" }, new Object[][] {
                { \"Row 1\", \"Row A\", \"Row X\" }, { \"Row 2\", \"Row B\", \"Row Y\" },
                { \"Row 3\", \"Row C\", \"Row Z\" }, { \"Row 4\", \"Row D\", \"Row K\" }, });

        CustomTable customTable = new CustomTable(model);
        form.addComponent(customTable);
        form.show();

    }
}
    
为了回应您对我的旧问题的信息,请像我提供的示例一样扩展Table。 覆盖createCell方法以返回包含它的列的combox。     

要回复问题请先登录注册