我正在使用LWUIT进行申请。
有一个表格
表格中嵌入了一个列表。
该列表包含5个元素。
最初,当我第一次加载应用时,如果我选择第一个元素,则选择第二个;当我选择第二个时,第三个选择了等等(很奇怪!)
我无法点击屏幕上的任何按钮
接下来我做的是,转换到与使用箭头键(键盘的......我正在模拟器上运行应用程序顺便说一下)
然后我回到第一个表单,现在一切都按预期工作(没有奇怪的行为)。
可能是什么问题?
我正在使用Sun Java Micro Edition SDK 3.0(默认触摸屏进行测试)
我的代码是:
List dummy = new List();
dummy.addItem("wewerwer");
dummy.addItem("wewerdswer");
dummy.addItem("wewqweerwer");
dummy.addItem("dscxwewerwer");
dummy.addItem("jhgwewerwer");
mainListForm.setLayout(new BorderLayout());
mainListForm.addComponent(BorderLayout.CENTER,dummy);
mainListForm.show();
这里可能出现什么问题?
更新1
我认为这里有一个错误。我已经附上了完整的代码和屏幕截图
import javax.microedition.midlet.*;
import com.sun.lwuit.*;
import com.sun.lwuit.events.*;
import com.sun.lwuit.plaf.UIManager;
import com.sun.lwuit.util.Resources;
public class Demo extends MIDlet implements ActionListener {
private Form mForm;
List abc;
public void startApp() {
Display.init(this);
try {
Resources r = Resources.open("/Test.res");
UIManager.getInstance().setThemeProps(r.getTheme(
r.getThemeResourceNames()[0])
);
} catch (Exception e){
System.out.println(e.toString());
}
if (mForm == null) {
Button click = new Button("Press me!");
click.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
System.out.println("I have been pressed");
}
});
abc = new List();
abc.addItem("Str1");
abc.addItem("Str2");
abc.addItem("Str3");
abc.addItem("Str4");
abc.addItem("Str5");
abc.addItem("Str6");
Form f = new Form("Hello, LWUIT!");
abc.addActionListener(this);
f.addComponent(abc);
Command exitCommand = new Command("Exit");
f.addCommand(exitCommand);
f.addCommandListener(this);
f.addComponent(click);
f.show();
}
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void actionPerformed(ActionEvent ae) {
System.out.println(abc.getSelectedIndex());
}
}
所以现在当我点击列表中的'Str1'时,Str2会被选中,等等。
IDE:Netbeans 模拟器:默认触摸屏手机答案 0 :(得分:0)
在操作事件上,通过调用setHandlesInput(true)
答案 1 :(得分:0)
好的....所以这就是你如何解决它。
显示表单后,从表单中删除列表,然后再将其添加到表单中,然后重新绘制表单。
早期代码
1)form.addComponenet(BorderLayout.center,list); 2)form.show();
Word for around
1)form.addComponenet(BorderLayout.center,列表); 2)form.show(); 3)form.setScrollable(假);
我知道它有点奇怪,但这样的列表索引选择对于触摸屏手机来说是顺畅的。