Как изменить курсор мыши, если мышь находится над кнопкой jdatepicker
Я пытаюсь изменить курсор мыши, когда мышь находится над кнопкой jdatepicker, но она не работает.
Курсор просто не меняется.
Это для приложения Windows, чтобы позволить пользователям выбирать даты.
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));
}
});
Результат:
Ожидаемое:
Кто-нибудь может мне помочь? Спасибо
1 ответ
Решение
Задача решена.
У меня был ярлык, который создавался до выбора даты, и его расположение, казалось, перекрывало расположение кнопки jdatepicker, поэтому курсор не распознавал область, которая должна быть кнопкой j, а вместо этого - метку.