Java me 如何在单击LUIT列表项时执行操作
我有一个LWUIT应用程序,它有一个涉及一些项目的列表 列表本身已添加到组合框中 1/当我专注于列表项时,我如何改变列表项的颜色Java me 如何在单击LUIT列表项时执行操作,java-me,lwuit,midlet,lwuit-list,lwuit-combobox,Java Me,Lwuit,Midlet,Lwuit List,Lwuit Combobox,我有一个LWUIT应用程序,它有一个涉及一些项目的列表 列表本身已添加到组合框中 1/当我专注于列表项时,我如何改变列表项的颜色 final com.sun.lwuit.List mylist = new com.sun.lwuit.List(); mylist.addItem("one"); mylist.addItem("two"); mylist.addItem("three"); mylist.addItem("fou
final com.sun.lwuit.List mylist = new com.sun.lwuit.List();
mylist.addItem("one");
mylist.addItem("two");
mylist.addItem("three");
mylist.addItem("four");
final com.sun.lwuit.ComboBox combo = new com.sun.lwuit.ComboBox (mylist.getModel());
final com.sun.lwuit.Form ff = new com.sun.lwuit.Form();
ff.addComponent(combo);
2/我想在单击(或双击)某个项目时执行一项操作
ActionListener接口不是为我做的,有人能指导我吗
mylist.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ev)
{
System.out.println("java");
}
}
);
您可以使用ListCellRenderer。它的有用工具, 看 您可以实现GetListCellRenderComponent(..)——此函数返回屏幕上显示的、UI上负责的组件 如果使用ListCellRenderer,可以使用actionLisiner,如下所示:
mylist.setRenderer(getListCellRenderer());
ActionListener chooseItemActionListener = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
doAction(getSelected());
}
};
mylist.addActionListener(chooseItemActionListener);
要更改组合框的颜色,您应该从ResourceEditor中修改组合框焦点样式
如果您要将列表添加到
组合框
,我认为您应该将ActionListener
放入组合框
,而不是像现在这样放入列表
。试试这个事实。您应该将渲染器设置为ComboBox,并且可以同时使用setRenderer和setListCellRenderer,但setListCellRenderer是
不推荐使用setRenderer:
combo.setRenderer(new ListCellRenderer() {
public Component getListCellRendererComponent(List list, Object value, int index, boolean isSelected) {
Label l = new Label(String.valueOf(value));
l.getStyle().setBgColor(0xffaa00);
return l;
}
public Component getListFocusComponent(List list) {
Label l = new Label(String.valueOf(list.getSelectedItem()));
l.getStyle().setBgColor(0x00ff00);
return l;
}
});
这很好。似乎我将被迫重用该代码,但什么是getListCellRenderer()方法?似乎我将被迫重用该代码,但什么是getListCellRenderer()方法(从何处获得)?——不,你在你的代码中使用你想要的方式。您工作的对象列表是您放入mylist.setRenderer(getListCellRenderer())中的对象列表。在函数中,您可以对特定对象进行强制转换,并使用容器、标签等构建组件。我编写了此方法>
公共组件getListCellRenderComponent(List List,java.lang.object value,int index,boolean isSelected){com.sun.lwuit.ComboBox myCombo=new com.sun.lwuit.ComboBox(List.getModel());value=list.getModel();if(isSelected){myCombo.setFocus(true);myCombo.getStyle().setbGTTransparency(100);}else{myCombo.setFocus(false);myCombo.getStyle().setbGTTransparency(0);}返回myCombo;}
到目前为止我是正确的吗?否。与他一起创建类和wotk很有帮助。在构造函数中,您可以像复选框一样插入组件。您不需要调用list.getMode(),因为您可以在java.lang.Object中获得值。值(需要对对象进行强制转换)。在mylist.setRenderer(getListCellRenderer())中加载列表@blay仅在您的语句之前编写此语句final com.sun.lwuit.ComboBox Combo=new com.sun.lwuit.ComboBox(mylist.getModel())代码>