如何使用com.toedter.calendar.JDateChooser?
How to use com.toedter.calendar.JDateChooser?
我正在使用 com.toedter.calendar.JDateChooser
在两个日期之间进行搜索,所以我有两个 jDateChooser
组件。
jDateChooser1
和 jDateChooser2
我想从 jTable
中的第二个 jDateChooser2
的 select 日期之后检索记录
我尝试在 constructor
中编写代码,它没有编译,因为空
String from = jDateChooser1.getDate();
得到 null
I can use jButton
to search records but I want it on jDateChooser
event.
为了检查它是否有效,我尝试了
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
}
所以我之前的标题是"How implement event for com.toedter.calendar.JDateChooser
?"
所以现在我的问题更容易理解了。
谢谢。
您可以使用 dateChooser.getDateEditor().addPropertyChangeListener()
注册监听器。然后监听 属性 "date" 的变化。试试下面的示例代码。
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);
}
}
我正在使用 com.toedter.calendar.JDateChooser
在两个日期之间进行搜索,所以我有两个 jDateChooser
组件。
jDateChooser1
和 jDateChooser2
我想从 jTable
jDateChooser2
的 select 日期之后检索记录
我尝试在 constructor
中编写代码,它没有编译,因为空
String from = jDateChooser1.getDate();
得到 null
I can use
jButton
to search records but I want it onjDateChooser
event.
为了检查它是否有效,我尝试了
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
}
所以我之前的标题是"How implement event for com.toedter.calendar.JDateChooser
?"
所以现在我的问题更容易理解了。
谢谢。
您可以使用 dateChooser.getDateEditor().addPropertyChangeListener()
注册监听器。然后监听 属性 "date" 的变化。试试下面的示例代码。
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);
}
}