1

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

                        }

}


        );
4

3 回答 3

1

You can work with ListCellRenderer. Its helpful tool , look here for example

You can implement getListCellRendererComponent(..)- this function return the compenents that display on screen and responsible on UI.

If you work with ListCellRenderer you can use actionLisiner like this:

mylist.setRenderer(getListCellRenderer());
    ActionListener chooseItemActionListener = new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
            doAction(getSelected());
        }
    };
    mylist.addActionListener(chooseItemActionListener);
于 2013-07-25T06:23:33.293 回答
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;
        }
    });

这运作良好。

于 2013-08-02T20:39:26.137 回答
1

要更改 a 的颜色,ComboBox您应该ComboBoxFocus从 ResourceEditor 修改样式。

如果您要将列表添加到ComboBox,我认为您应该像您正在做的那样将 theActionListener放到ComboBoxnot 中。List试试这个事实。

于 2013-07-25T08:48:28.160 回答