我有一个LWUIT应用程序,其中包含一些涉及某些项目的列表。
列表本身已添加到Combobox中。
1 /当我专注于它时,我如何更改列表项的颜色?
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");
}
}
);
答案 0 :(得分:1)
您可以使用ListCellRenderer。它的有用工具, 看here for example
您可以实现getListCellRendererComponent(..) - 此函数返回在屏幕上显示并在UI上负责的人员。
如果您使用ListCellRenderer,您可以像这样使用actionLisiner:
mylist.setRenderer(getListCellRenderer());
ActionListener chooseItemActionListener = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
doAction(getSelected());
}
};
mylist.addActionListener(chooseItemActionListener);
答案 1 :(得分:1)
要更改ComboBox
的颜色,您应该从ResourceEditor修改ComboBoxFocus
样式。
如果您要将列表添加到ComboBox
,我认为您应该将ActionListener
放到ComboBox
而不是List
。试试这个事实。
答案 2 :(得分:1)
您应该将渲染器设置为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;
}
});
这很好用。