0

我正在使用 toedter JDateChooser,但在检索从中选择的日期时遇到问题。

jDateChooser2.setDateFormatString("dd-MMMM-yy");
jDateChooser2.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseClicked(java.awt.event.MouseEvent evt) {
        jDateChooser2MouseClicked(evt);
    }
});

private void jDateChooser2MouseClicked(java.awt.event.MouseEvent evt) {                                           
    Date dateFromDateChooser = jDateChooser2.getDate();
    System.out.println(dateFromDateChooser);
}    

如何检索日期?有更好的方法吗?我认为听众没有被解雇或触发。我尝试将侦听器替换为:

    System.out.println("triggered");

仍然没有输出。

4

1 回答 1

2

基本上,您不想监听MouseEvents,因为它们可能会以多种方式改变组件的状态,其中大部分是您不想知道的。

您应该监视date属性更改事件,例如...

JDateChooser dateChooser = new JDateChooser();
dateChooser.addPropertyChangeListener("date", new PropertyChangeListener() {
    @Override
    public void propertyChange(PropertyChangeEvent evt) {
        Date date = (Date)evt.getNewValue();
        System.out.println("Date changed " + date);
    }
});

请注意,这可能是响应呼叫setDate或用户从选择器中选择日期而触发的,通常,您无法分辨

于 2014-07-21T03:49:19.937 回答