单击LWUIT List项时如何执行操作

时间:2013-07-24 12:09:26

标签: java-me lwuit midlet lwuit-list lwuit-combobox

我有一个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");

                        }

}


        );

3 个答案:

答案 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;
        }
    });

这很好用。