如何使用com.toedter.calendar.JDateChooser?

时间:2019-01-07 06:46:12

标签: java jtable jdatechooser

我正在使用com.toedter.calendar.JDateChooser在两个日期之间进行搜索,因此我有两个jDateChooser组件。
jDateChooser1jDateChooser2我想从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 :(得分:0)

您可以使用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);
  }
}