Как использовать com.toedter.calendar.JDateChooser? - PullRequest
0 голосов
/ 07 января 2019

Я использую com.toedter.calendar.JDateChooser для поиска между двумя датами, поэтому у меня есть два jDateChooser компонента.
jDateChooser1 и jDateChooser2 Я хочу получить запись после выбранной даты со секунды jDateChooser2 в jTable

Я пытался написать код в constructor он не компилируется, причина пуста
String from = jDateChooser1.getDate(); получает null

Я могу использовать jButton для поиска записей, но я хочу это для события jDateChooser.

Чтобы проверить, работает ли я, я попытался

private void jDateChooser1MouseClicked(java.awt.event.MouseEvent evt){                                           
    jLabel1.setText(String.valueOf(jDateChooser1.getDate()));

} 

и

private void jDateChooser1MouseReleased(java.awt.event.MouseEvent evt){                                                                
    jLabel1.setText(String.valueOf(jDateChooser1.getDate()));

}

Но он не работает и с
jDateChooser1MouseReleased(java.awt.event.MouseEvent evt)
или
jDateChooser1MouseClicked(java.awt.event.MouseEvent evt)

Он работает с jButton, как я упоминал выше, но я не хочу использовать:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    jLabel1.setText(String.valueOf(jDateChooser1.getDate()));
    //Working 
}  

Итак, мой предыдущий заголовок был «Как реализовать событие для com.toedter.calendar.JDateChooser
Так что теперь мой вопрос более понятен.
Спасибо.

1 Ответ

0 голосов
/ 15 января 2019

Вы можете зарегистрировать слушателя, используя dateChooser.getDateEditor().addPropertyChangeListener(). Затем прослушайте изменения в свойстве «дата». Попробуйте приведенный ниже пример кода.

import com.toedter.calendar.JDateChooser;

import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.GridLayout;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

public class JDateChooserSample
{
  public static void main(String[] args)
  {
    JLabel label = new JLabel("No date");

    JDateChooser dateChooser = new JDateChooser();
    dateChooser.getDateEditor().addPropertyChangeListener(new PropertyChangeListener()
    {
      @Override
      public void propertyChange(PropertyChangeEvent evt)
      {
        if (evt.getPropertyName().equals("date"))
        {
          label.setText(String.valueOf(dateChooser.getDate()));
        }
      }
    });

    JFrame f = new JFrame();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.getContentPane().setLayout(new GridLayout(2, 1));
    f.getContentPane().add(dateChooser);
    f.getContentPane().add(label);
    f.setBounds(300, 200, 400, 300);
    f.setVisible(true);
  }
}
...