2014-07-21 71 views
0

我正在使用toedter JDateChooser,並且在檢索從中選取的日期時遇到問題。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"); 

仍然沒有輸出。

+0

您能否詳細說明您所遇到的問題? –

+0

故意'jDateChooser2.setDateFormatString(「dd-MMMM-yy」);'這是不正確的,應該是'jDateChooser2.setDateFormatString(「dd-MM-yyyy」);'' –

回答

2

基本上,您不希望傾聽MouseEvent,因爲這些可能會以多種方式更改組件的狀態,其中大多數您不想知道。

你應該監控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或由用戶從選擇器中選擇一個日期,一般,您將無法分辨