Lwuit 当文本字段位于列表中时,如何使其可编辑?
有一个包含文本字段的列表。问题是这些字段不可编辑!以下是代码:Lwuit 当文本字段位于列表中时,如何使其可编辑?,lwuit,lwuit-textfield,lwuit-list,Lwuit,Lwuit Textfield,Lwuit List,有一个包含文本字段的列表。问题是这些字段不可编辑!以下是代码: public formConstructor() { ... private Vector vList = new Vector(); // datasource of the list private CListCellProduits listRenderer; private List list; ... listRendere
public formConstructor()
{
...
private Vector vList = new Vector(); // datasource of the list
private CListCellProduits listRenderer;
private List list;
...
listRenderer = new CListCellProduits(20);
vList.addElement(new String("P001;"));
vList.addElement(new String("P002;"));
list = (new ListUtil(vList)).createList(listRenderer);
addComponent(list);
...
}
public class CListCellProduits extends Container implements ListCellRenderer {
private Label focus = new Label("");
private Label lData;
private Champ sortie = new Champ("123", TextArea.NUMERIC);
private Champ dispo = new Champ("123", TextArea.NUMERIC);
private int widthCommun;
private Container cRow1 = new Container(new BoxLayout(BoxLayout.X_AXIS));
public CListCellProduits(int widthCommun)
{
super();
setLayout(new BoxLayout(BoxLayout.Y_AXIS));
lData = new Label("");
sortie.setPreferredW(widthCommun);
dispo.setPreferredW(widthCommun);
this.widthCommun = widthCommun;
cRow1.addComponent(lData);
cRow1.addComponent(sortie);
cRow1.addComponent(dispo);
addComponent(cRow1);
}
public Component getListCellRendererComponent(List list, Object value, int index, boolean isSelected)
{
Content entry = null;
if (value instanceof Content)
entry = (Content)value;
if (!"".equals(entry.getColumn(0)))
lData.setText(entry.getColumn(0));
else
lData.setText("-");
lData.setPreferredW(widthCommun);
list.repaint();
return this;
}
public Component getListFocusComponent(List arg0)
{
return focus;
}
}
public class ListUtil {
private Vector data = new Vector();
private Content[] contents;
public ListUtil(Vector vData)
{
data = vData;
contents = new Content[vData.size()];
}
public List createList(CListCellProduits renderer)
{
CList theList;
for(int i = 0; i < data.size(); i++)
{
contents[i] = new Content(String.valueOf(data.elementAt(i)));
}
theList = new CList(contents, renderer);
return theList;
}
}
public class CList extends List {
public CList(Object[] data, CListCellProduits renderer)
{
super(data);
setListCellRenderer(renderer);
setScrollAnimationSpeed(getScrollAnimationSpeed()/4);
}
}
public class Champ extends TextField {
public Champ(String imo)
{
super();
setReplaceMenu(false);
setInputModeOrder(new String[]{imo});
}
public Champ(String imo, int contrainte)
{
super();
setReplaceMenu(false);
setInputModeOrder(new String[]{imo});
setConstraint(contrainte);
}
protected Command installCommands(Command clear, Command t9)
{
return null;
}
}
public formConstructor()
{
...
private Vector vList=new Vector();//列表的数据源
私有CListCellProduits列表呈现器;
私人名单;
...
listRenderer=新的CListCellProduits(20);
vList.addElement(新字符串(“P001;”);
vList.addElement(新字符串(“P002;”);
list=(新ListUtil(vList)).createList(listRenderer);
添加组件(列表);
...
}
公共类CListCellProduits扩展容器实现ListCellRenderer{
专用标签焦点=新标签(“”);
自有品牌lData;
私人Champ架次=新Champ(“123”,TextArea.NUMERIC);
私有Champ dispo=新Champ(“123”,TextArea.NUMERIC);
私人公社;
私有容器cRow1=新容器(新的BoxLayout(BoxLayout.X_轴));
公共CListCellProduits(int-WidthCommon)
{
超级();
setLayout(新的BoxLayout(BoxLayout.Y_轴));
lData=新标签(“”);
出动架次setPreferredW(宽度公社);
dispo.setPreferredW(WidthCommon);
this.widthcumn=widthcumn;
cRow1.添加组件(lData);
1.增加部队(架次);
cRow1.添加组件(dispo);
addComponent(cRow1);
}
公共组件GetListCellRenderComponent(列表列表、对象值、int索引、布尔isSelected)
{
内容输入=空;
if(内容的值实例)
条目=(内容)值;
如果(!“”.equals(entry.getColumn(0)))
lData.setText(entry.getColumn(0));
其他的
lData.setText(“-”);
lData.setPreferredW(宽度公社);
list.repaint();
归还这个;
}
公共组件getListFocusComponent(列表arg0)
{
返回焦点;
}
}
公共类ListUtil{
私有向量数据=新向量();
私有内容[]内容;
公共ListUtil(矢量vData)
{
数据=vData;
contents=新内容[vData.size()];
}
公共列表createList(CListCellProduits渲染器)
{
CList-theList;
对于(int i=0;i
在运行时,它给出如下内容:
那么如何使文本字段可编辑?这在列表中是不可能的
列表仅用于显示可单击项目列表,不用于文本字段 正确,答案是使用容器而不是列表。