I'm trying to change the mouse cursor when the mouse is over the jdatepicker button, but it isn't working.
The cursor simply isn't changing.
This is for a windows application to allow users to select dates.
UtilDateModel model = new UtilDateModel();
model.setDate(TODAY.getYear(), TODAY.getMonthValue() - 1, TODAY.getDayOfMonth());
model.setSelected(true);
Properties p = new Properties();
p.put("text.year", "Ano");
p.put("text.month", "Mês");
p.put("text.day", "Dia");
p.put("text.today", "Hoje");
JDatePanelImpl panel = new JDatePanelImpl(model, properties);
JDatePickerImpl datePicker = new JDatePickerImpl(panel, new DateLabelFormatter());
datePicker.setBackground(Color.WHITE);
datePicker.setTextEditable(true);
datePicker.setBounds(bounds);
datePicker.getJFormattedTextField().addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
if (((JFormattedTextField) e.getSource()).getText().length() >= 10 ) {
e.consume();
}
}
});
((JButton) datePicker.getComponents()[1]).setEnabled(true);
((JButton) datePicker.getComponents()[1]).setIcon(CALENDAR);
((JButton) datePicker.getComponents()[1]).setText("");
((JButton) datePicker.getComponents()[1]).setBackground(Color.white);
((JButton) datePicker.getComponents()[1]).setPreferredSize(new Dimension(5, 15));
((JButton) datePicker.getComponents()[1]).addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
((JButton) datePicker.getComponents()[1]).setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
}
@Override
public void mouseExited(MouseEvent e) {
((JButton) datePicker.getComponents()[1]).setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
});
Result:
Expected:
Can someone help me? Thanks
Problem solved.
I had a label that was being created before the datepicker, and it's location seemed to overlap that of the jdatepicker button, so the cursor wasn't recognizing the area to be the jbutton, but instead the label.