lwuit日历与按钮事件

时间:2011-08-01 07:49:18

标签: java-me calendar popup lwuit

我尝试使用表单按钮点击显示日历,但我无法更改日期并非常努力找到焦点的位置。

    ...
    Button mdate=new Button("change date");
    mdate.addActionListener(this);
    ...
    public void actionPerformed(ActionEvent ae) {
       Form cal= new Form();
       com.sun.lwuit.Calendar c =new com.sun.lwuit.Calendar();
       c.setFocus(true);
       c.addActionListener(this);
       cal.addComponent(c);
       cal.show();
    }

如何以更好的方式显示和隐藏按钮点击上的日历

1 个答案:

答案 0 :(得分:3)

最好使用Dialog(如弹出窗口)而不是Form。您可以在Form内轻松处置。无需显示其他表格。请参阅以下示例代码

Button button = new Button("Click me");
form.addComponent(button);
button.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent ae) {
        final Dialog cal = new Dialog();
        final com.sun.lwuit.Calendar c = new com.sun.lwuit.Calendar();
        c.setFocus(true);
        c.addActionListener(this);
        cal.addComponent(c);
        cal.addCommand(new Command("Cancel") {

         public void actionPerformed(ActionEvent evt) {
              cal.dispose();
            }
        });
      c.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent evt) {
            System.out.println("Selected date :: " + c.getDate().toString())
        }
     });
    cal.show(20, 20, 20, 20, true, false);
    }
});

Calendar CalendarSelectedDay添加所选和未选择的样式,例如CalendarDateComboBox。同时为{{1}}添加selected and unselected样式。