Какого слушателя следует использовать для обнаружения движения / щелчка в текстовом поле JDatePicker? - PullRequest
0 голосов
/ 22 января 2019

В моем графическом интерфейсе у меня есть пара наборов переключателей, каждый с двумя переключателями. Первая радио-кнопка является нормальной с текстом, в то время как другая - только радио-кнопка, и рядом с ней находится JDatePicker. Я хочу имитировать поведение переключателя, чтобы JDatePicker, казалось, был связан с ним, поэтому, когда он наводится на текстовое поле JDatePicker, переключатель загорается, и при нажатии на переключатель переключается на это поле.

GUI Screenshot

Я сделал слушатель действия и добавил его в JDatePickerImpl, и попытался прослушать этот компонент, но ничего не происходит - слушатель не запускается, когда я нажимаю на текстовое поле или кнопку.

UtilDateModel model = new UtilDateModel();
    Properties p = new Properties();
    p.put("text.today", "Today");
    p.put("text.month", "Month");
    p.put("text.year", "Year");
    JDatePanelImpl datePanel = new JDatePanelImpl(model, p);
    // Don't know about the formatter, but there it is...
    fromDatePicker = new JDatePickerImpl(datePanel, new 
DateLabelFormatter());
    fromDatePicker.setBounds(45, 186, 170, 26);
    JFormattedTextField textField = 
fromDatePicker.getJFormattedTextField();
    textField.setFont(new Font("Tahoma", Font.PLAIN, 14));

nowRdBtn = new JRadioButton("Right This Second");
    nowRdBtn.setBounds(22, 235, 139, 29);
    buttonGroup_1.add(nowRdBtn);
    nowRdBtn.setFont(new Font("Tahoma", Font.PLAIN, 14));


TTListener listener = new TTListener();
    fromDatePicker.addActionListener(listener);


private class TTListener implements ActionListener {        
    @Override
    public void actionPerformed(ActionEvent event) {
        if (event.getSource() == fromDatePicker) {
            System.out.print("Done");
            beginningRdBtn.setEnabled(false);
            fromDateRdBtn.setEnabled(true);
        }
    }
}

По отдельности компоненты работают как положено, а желаемое поведение соединения - нет. Получение соответствующего JFormattedTextField из JDatePickerImpl и прослушивание этого вместо этого также не дает никаких результатов.

1 Ответ

0 голосов
/ 23 января 2019

Полагаю, JDatePickerImpl вы используете org.jdatepicker.impl.JDatePickerImpl.Здесь ActionListener срабатывает только тогда, когда пользователь выбирает дату.Вы должны попробовать добавить MouseListener и реализовать mouseEntered() и mouseExited().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...