java - 什么是用于检测 JDatePicker 文本字段中的移动/单击的适当监听器?

标签 java swing

在我的 GUI 中,我有几组单选按钮,每组有两个单选按钮。第一个单选按钮是正常的文本,而另一个只是一个单选按钮,旁边有 JDatePicker。我想模仿单选按钮的行为,以便 JDatePicker 看起来与它耦合,因此当它悬停在 JDatePicker 的文本字段上时,单选按钮亮起,当它被单击时单选按钮更改为该字段。

GUI Screenshot

我制作了一个 Action 监听器并将其添加到 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);
        }
    }
}

单独地,组件按预期工作,但所需的耦合行为却没有。从 JDatePickerImpl 获取相应的 JFormattedTextField 并监听它也不会产生任何结果。

最佳答案

我猜你使用的 JDatePickerImplorg.jdatepicker.impl.JDatePickerImpl。此处 ActionListener 仅在用户选择日期时触发。您应该尝试添加 MouseListener 并实现 mouseEntered()mouseExited()

关于java - 什么是用于检测 JDatePicker 文本字段中的移动/单击的适当监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54316135/

相关文章:

java - 如何从 Google Sheets v4 API 获取排序的单元格数据?

java - 如何在JTable的单元格中实现自动完成功能?

java - 如何让进度条 Swing 进度?

java - 对 JButton 进行编程以在单击时创建对象

java - 如何从数据库中获取值?

java - 如何将所选元素从一个 Jlist 移动到不同类中的另一个 Jlist

java - 制作1个单一JButton改变面板背景

java - 如何使 JFrame 和 JMenubar 不在 public static void main(String[] args) 中

java - Java 小程序中的 Unicode/日语字符

java - 错误 : java: cannot access org. openqa.selenium.HasInputDevices 找不到 org.openqa.selenium.HasInputDevices 的类文件