如何使用com.toedter.calendar.JDateChooser



我正在使用com.toedter.calendar.JDateChooser在两个日期之间搜索,所以我有两个jDateChooser组件。
jDateChooser1jDateChooser2我想从jTable中的第二个jDateChooser2中选择日期后检索记录

我尝试编写代码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实施事件?
所以现在我的问题更清楚了。
谢谢。

您可以使用

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);
  }
}

相关内容

  • 没有找到相关文章

最新更新