Reputation:
I'm using com.toedter.calendar.JDateChooser
to search between two dates so I've two jDateChooser
components.
jDateChooser1
and jDateChooser2
I want retrieve record after select date from second jDateChooser2
in jTable
I tried write code in constructor
it doesn't compile cause empty
String from = jDateChooser1.getDate();
gets null
I can use
jButton
to search records but I want it onjDateChooser
event.
To check if it is working I tried
private void jDateChooser1MouseClicked(java.awt.event.MouseEvent evt){
jLabel1.setText(String.valueOf(jDateChooser1.getDate()));
}
and
private void jDateChooser1MouseReleased(java.awt.event.MouseEvent evt){
jLabel1.setText(String.valueOf(jDateChooser1.getDate()));
}
But it doesn't working either with
jDateChooser1MouseReleased(java.awt.event.MouseEvent evt)
or
jDateChooser1MouseClicked(java.awt.event.MouseEvent evt)
It's working with jButton
as I mentioned above but I don't want to use:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
jLabel1.setText(String.valueOf(jDateChooser1.getDate()));
//Working
}
So my previous title was "How implement event for com.toedter.calendar.JDateChooser
?"
So now my question is more clear to understand.
Thank you.
Upvotes: 0
Views: 14990
Reputation: 2148
You can register a listener using dateChooser.getDateEditor().addPropertyChangeListener()
. Then listen for changes in property "date". Try below sample code.
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);
}
}
Upvotes: 1